[英]Count having in a SELECT DISTINCT query?
所以我有這個問題:
SELECT DISTINCT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5) FROM table s
WHERE CITY IN (...)
AND STATE IN (...)
我如何添加到此只能獲得計數(s.ID)> 20,所以我只獲得表中有20個以上ID的不同城市/州/拉鏈?
我假設我需要某種子查詢,但我不確定如何實現它。 謝謝。
按要選擇的值進行分組,並僅采用具有20個以上記錄的組
SELECT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
FROM table s
WHERE CITY IN (...)
AND STATE IN (...)
GROUP BY s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
HAVING count(*) > 20
使用子查詢的另一種方式
SELECT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
FROM Table S JOIN
(
SELECT ID, COUNT(ID) Cnt
FROM Table
GROUP BY ID
) SS
ON S.ID = SS.ID
WHERE CITY IN (...)
AND STATE IN (...)
AND Cnt > 20
如果需要過濾聚合,請使用HAVING
。 在分組后應用HAVING
如下:
SELECT DISTINCT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5), count(s.id) as count FROM table s
WHERE CITY IN (...)
AND STATE IN (...)
GROUP BY s.CITY, s.STATE, SUBSTR(s.ZIP,1,5)
HAVING count > 20;
您可以查看HAVING子句: https : //dev.mysql.com/doc/refman/5.5/en/group-by-handling.html
我不確定它如何適用於您的數據。
SELECT name, COUNT(name) FROM orders
GROUP BY name
HAVING COUNT(name) = 1;
顯然你不需要GROUP BY,因為你選擇的是DISTINCT ......那么可能是這樣的嗎?
SELECT DISTINCT s.CITY, s.STATE, SUBSTR(s.ZIP,1,5), COUNT(s.ID) FROM table s HAVING COUNT(s.ID) > 20
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.