簡體   English   中英

查詢SELECT DISTINCT count()

[英]Query SELECT DISTINCT count()

您好,我有以下疑問,我想計算一個月內輸入數據的次數。 我的數據庫是:

  • 日期:
  • 10/2010
  • 10/2010
  • 09/2010
  • 08/2010

我有以下查詢。

 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

但是我要你給我這樣的東西。

  • 計數| 日期
  • 2 | 二千零十七分之十
  • 1 | 二千〇一十七分之九
  • 1 | 二千零十七分之十

我希望我已經解釋了我的問候。

您太復雜了; 不需要子查詢或DISTINCT。

SELECT `date`, count(*) 
FROM `employee`
GROUP BY `date`
HAVING count(*) > 0
ORDER BY `date` DESC;

關於HAVING count() > 0原因,我有些困惑。 某件商品的唯一計數可能為零,這意味着該商品不在表中(因此無論如何也不會出現)。

其他觀察:

  • DISTINCT不是函數; 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM