我有一個關聯 2 個物體的 sqlite 表,格式為
x | y
1 1
1 3
2 2
2 3
3 1
3 2
3 3
預期輸出:3(因為 x=3 鏈接到 y=1,2,3,也就是 y 的所有值)
我需要選擇 x 中與 y 中的每個值相關的所有值 我的問題是,當我按 x 分組時,然后檢查給定的 x 組有多少 y 值,我不知道有多少y 值是總計,因為我只是按 x 對表進行分組,無法訪問原始表進行計數。
uj5u.com熱心網友回復:
使用此查詢:
SELECT x
FROM tablename
GROUP BY x
HAVING COUNT(DISTINCT y) = (SELECT COUNT(DISTINCT y) FROM tablename);
您可以獲得x與每個相關的所有內容y。
您可以將它與運算子一起使用IN以獲取表中的所有行:
SELECT *
FROM tablename
WHERE x IN (
SELECT x
FROM tablename
GROUP BY x
HAVING COUNT(DISTINCT y) = (SELECT COUNT(DISTINCT y) FROM tablename)
);
x如果and沒有重復的組合y,則該HAVING子句可以寫得更簡單:
HAVING COUNT(*) = (SELECT COUNT(DISTINCT y) FROM tablename)
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/430937.html
