SQL查询:统计abflug表中不同ab_datum日期的重复行数
解决SQL按日期统计行数的问题
你的需求是按去重的日期分组,统计每个日期对应的记录行数,正确的写法应该用GROUP BY分组,搭配COUNT(*)统计每组的总行数:
SELECT ab_datum AS `Date`, COUNT(*) AS `Number` FROM abflug GROUP BY ab_datum ORDER BY ab_datum;
为什么你之前的语句不对?
你写的SELECT DISTINCT ab_datum Date, COUNT(DISTINCT ab_datum) Number有两个问题:
COUNT(DISTINCT ab_datum)统计的是每个日期的去重次数,而不是该日期的记录总数,所以每个日期的结果都会是1,这显然不是你要的。DISTINCT在这里完全多余,GROUP BY ab_datum已经会自动将相同日期的记录归为一组,每组只返回一个唯一的日期值。
针对你的表数据,执行正确语句后会得到如下结果:
| Date | Number |
|---|---|
| 06.07.13 | 1 |
| 08.10.13 | 1 |
| 13.11.13 | 2 |
| 14.11.13 | 2 |
| 15.11.13 | 1 |
| 17.11.13 | 2 |
| 18.11.13 | 1 |
| 19.11.13 | 1 |
| 18.02.14 | 1 |
内容的提问来源于stack exchange,提问作者DonDon
相关产品推荐
相关产品推荐

