嘗試比較兩個表的計數時遇到麻煩(使用 SQLite)。
假設我有如下表格:
物件(NumId 是主鍵)
編號 | 物件類別 |
---|---|
1 | 永恒的 |
2 | 借來的 |
3 | 借來的 |
4 | 借來的 |
5 | 借來的 |
借用(NumObj 是外鍵/主鍵參考物件表)
數字物件 | 收藏名稱 |
---|---|
2 | collection_alpha |
3 | 收藏貝莎 |
4 | 收藏貝莎 |
5 | 收藏貝莎 |
我需要執行的查詢是:
“借來的物件數量多于永久物件數量的藏品有哪些?”
我目前的嘗試是:
SELECT Collection_name FROM Borrowed
WHERE (SELECT COUNT(Collection_name) FROM Borrowed)>
(SELECT COUNT(*) FROM Objects WHERE Object_category =
'permanent')
它正在從列中回傳值,而不是按預期作業(應該回傳 'collection_betha' 以擁有 3 個物件,大于現有永久物件的數量 1)。
uj5u.com熱心網友回復:
也許加入會有所幫助
SELECT Borrowed.Collection_name
FROM Borrowed
JOIN Objects
ON Objects.NumId= Borrowed.NumObj
GROUP BY Borrowed.Collection_name
HAVING COUNT(NumObj) >
(SELECT COUNT(*) FROM Objects WHERE Object_category = 'permanent')
uj5u.com熱心網友回復:
我會在這里使用條件聚合:
SELECT b.Collection_name
FROM Borrowed b
INNER JOIN Objects o
ON o.NumId = b.NumObj
GROUP BY b.Collection_name
HAVING SUM(o.Object_category = 'borrowed') > SUM(o.Object_category = 'permanent');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/470336.html