2009-11-03 58 views
1

快速的问题......我有检查重复,看起来像这样的查询:MySQL COUNT(*)中的最后一项结果?

SELECT COUNT(*) AS repetitions, Name, Phone, ID, categoryid, State 
FROM users 
GROUP BY Name, Phone, State 
HAVING repetitions > 1 
ORDER BY ID DESC 

这个工作,但MySQL的一组重复的返回第一个ID。例如,让我说我有2行。第一行的ID是1,第二行的ID是2,名称,电话和状态具有相同的数据...我如何获得上述查询返回计数但ID为“2”而不是“1”?

谢谢! ;)

回答

5

使用MAX()聚合函数:

SELECT COUNT(*) AS repetitions, max(ID) FROM users GROUP BY Name, Phone, State HAVING repetitions > 1 ORDER BY ID DESC 
+2

真棒工作就像一个魅力! – mike 2009-11-03 21:34:42

0

并不完美,但工作

SELECT COUNT(*) AS repetitions, Name, Phone, MAX(ID), categoryid, State 
FROM users 
GROUP BY Name, Phone, State 
HAVING repetitions > 1 
+0

在几分钟之前得到了相同的答案......非常感谢! – mike 2009-11-03 21:38:53