[英]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.