【发布时间】:2018-09-01 20:05:02
【问题描述】:
我有一个表,其中有一些相同日期的重复值
MyTime | Mrc | Num
21-Dec | ABC | 200
21-Dec | ABC | 200
20-Dec | DEF | 300
20-Dec | DEF | 300
19-Dec | XYZ | 254
21-Nov | ABC | 200
我想忽略重复的条目并按 DATE(Mytime), Mrc, Num 分组,即我想检测一个月中同一天的条目,Mrc & Num 出现多次但不完全重复
所以预期的输出是:
MyTime | Mrc | Num | cnt
21 | ABC | 200 | 2
我尝试了以下几行:
SELECT DISTINCT(MyTime, Mrc, Num, Count(*) as cnt)
FROM `My_Table`
WHERE MType != 'XX'
AND HType != 'YY'
GROUP BY Date(MyTime), Mrc, Num
ORDER BY MyTime DESC
但它不起作用。
【问题讨论】:
-
所以,如果我理解你的话,你只想获得相同日期的记录数?
-
如果其他列有日期相同但值不同的记录怎么办?
-
是的,具有相同日期(不是月份)、相同 Mrc 和相同 Num 的记录计数,但忽略那些完全重复的条目。高于预期的结果是 21(因为相同的 Mrc (ABC) 和相同的 Num(200) 出现两次 - 12 月和 11 月)
-
你的主键是什么?
-
@Strawberry 主键是一个“ID”列(上面未显示)