选择多列的 Count() 大于 1

And*_*urn 4 mysql count

假设我有这样的数据:

ClaimID ClaimLine    Date
   1        1     22/06/2016
   1        1     01/01/2016
   2        1     08/06/2016
   2        2     31/01/2015
   3        1     23/03/2013
Run Code Online (Sandbox Code Playgroud)

我将如何选择具有最低日期的重复 ClaimID 和 ClaimLine?

所以返回值将是

1,1,01/01/2016
Run Code Online (Sandbox Code Playgroud)

Wel*_*bog 7

您可以按要删除重复的列进行分组,然后从每个组中选择最小日期:

SELECT ClaimID, ClaimLine, MIN(Date)
FROM Table
GROUP BY ClaimID, ClaimLine
ORDER BY ClaimID, ClaimLine
Run Code Online (Sandbox Code Playgroud)

如果您进一步只想查看已复制的 ClaimIDs 和 ClaimLines,您可以添加一个 HAVING 子句:

SELECT ClaimID, ClaimLine, MIN(Date)
FROM Table
GROUP BY ClaimID, ClaimLine
HAVING COUNT(*) > 1
ORDER BY ClaimID, ClaimLine
Run Code Online (Sandbox Code Playgroud)