[英]Query SELECT DISTINCT count()
您好,我有以下疑問,我想計算一個月內輸入數據的次數。 我的數據庫是:
我有以下查詢。
SELECT DISTINCT (date) FROM employee WHERE date IN (SELECT date FROM employee GROUP BY date HAVING count( date ) >0) ORDER BY date DESC;
這個查詢給我:日期:10/2017 8/2017 9/2017
但是我要你給我這樣的東西。
我希望我已經解釋了我的問候。
您太復雜了; 不需要子查詢或DISTINCT。
SELECT `date`, count(*)
FROM `employee`
GROUP BY `date`
HAVING count(*) > 0
ORDER BY `date` DESC;
關於HAVING count() > 0
原因,我有些困惑。 某件商品的唯一計數可能為零,這意味着該商品不在表中(因此無論如何也不會出現)。
其他觀察:
date
括在SELECT子句的括號中絕對無效。 (此外,DISTINCT 幾乎從不適合用於GROUPING查詢。) COUNT(somefield)
與COUNT(1)
和COUNT(*)
。 如果要計數唯一值,可以執行COUNT(DISTINCT somefield)
; 但這對COUNT(DISTINCT groupingfield)
毫無意義,因為它總是會導致1。 您編寫的查詢有點復雜。 唯一身份和分組依據在這里為您做同樣的事情。 當您按計數分組時,將自動為您提供分組行的計數。 此外,您還將有獨特的日期。 嘗試這個。
SELECT count(date), date
FROM employee
GROUP BY date
HAVING count( date ) >0
ORDER BY date DESC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.