我有一個值爲0或1的列。我如何計算零的數量?如何計算sql中的零個數?
SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) >=
ALL (SELECT SUM(AA.zeroorone)
FROM table1 AA
GROUP BY AA.id)
我知道這個計數的數量。我似乎無法得到它
任何幫助深表感謝
我有一個值爲0或1的列。我如何計算零的數量?如何計算sql中的零個數?
SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) >=
ALL (SELECT SUM(AA.zeroorone)
FROM table1 AA
GROUP BY AA.id)
我知道這個計數的數量。我似乎無法得到它
任何幫助深表感謝
case語句會做很好:
SELECT SUM(CASE WHEN zeroorone = 0
THEN 1
ELSE 0 END) AS TOTAL_ZEROS
FROM table1
如果你只是想零表中的計數,然後使用此:
SELECT COUNT(1) AS COUNT_OF_ZEROES
FROM table1
WHERE zeroone = 0
如果你想每個ID計數,然後使用它。
SELECT id, COUNT(1) AS COUNT_OF_ZEROES
FROM table1
WHERE zeroone = 0
GROUP BY id
使用個性化......
SELECT COUNT(*) FROM table1
WHERE zeroone=0
我知道這計數的人的數量
你確定嗎?它在我看來似乎返回id
s,其中一個的計數大於或等於零的計數。
如果您很高興查詢能夠滿足您的要求,但您希望扭轉效果 - 例如,返回id
S其中,其零理貨大於或等於其的人的理貨 - 然後就改變比較操作:
SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) <= -- changed from >=
ALL (SELECT SUM(AA.zeroorone)
FROM table1 AA
GROUP BY AA.id)
+1取決於這可能是更好的選擇目標。只有我更喜歡CASE語句的原因是,如果需要在更大的查詢中使用此計數。 – bernie 2012-03-15 02:48:09