我正在桌面上使用mysql 8.0ce和mysql server 5.0。当我使用group by时,结果无法保留重复记录,这是我需要的参考。我该怎么处理?
例如,我在表调度程序中有几个日期:
sDate:
10/1/2018
10/1/2018
10/2/2018
10/2/2018
10/3/2018
10/3/2018
当我做以下陈述时:
SELECT S.sDate
FROM Scheduler S
GROUP BY S.sDate
HAVING COUNT(*)>1
我应该在表sdate中得到完全相同的结果。然而,我得到的是:
10/1/2018
10/2/2018
10/3/2018
我不知道该怎么做。
2条答案
按热度按时间aor9mmx11#
按定义按字段分组可删除重复项。
例如,查询
返回以下结果:
如果你的约会只发生过一次,它仍然会显示一次。例如,如果我们添加了一行
2018-10-04
,我们有这个:如果要保留重复的日期,但仍然要找出哪些日期出现了多次,则需要使用子查询。
如果您有mysql 8+,它允许CTE,您的查询将如下所示:
由于早期版本不允许使用CTE,您将无法将
Dupes
内联查询:因为我们用的是
INNER JOIN
,不会出现多次的记录。m0rkklqb2#
实际上您使用了以下查询:
此查询表示需要在表调度程序中显示计数大于1的所有sdate,并且在表数据中,所有三个日期都有重复的条目。
如果要在查询结果中保留重复项,请使用以下查询:
希望能消除你的疑虑!