sql - MySQL COUNT(*) 结果中的最后一项?

标签 sql mysql

快速提问...我有一个检查重复项的查询,如下所示:

 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”?

谢谢! ;)

最佳答案

使用 max() 聚合函数:

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

关于sql - MySQL COUNT(*) 结果中的最后一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1670148/

相关文章:

mysql - 如何防止表格重复输入?

mysql - 尝试嵌套游标时 MySQL 存储过程中出现语法错误

mysql - Sqlite3 vs Postgres vs Mysql - Rails

mysql - SQL - 将多个类别插入列

javascript - 如何修复 "DownloadURL gives responseXML null value"

sql - 替换列的值不应更新 PostgreSQL 中的 last_modified 时间

sql-server-2005 - 如何在 SQL 中使用 CASE,显示语法错误

php - 用于正确分割嵌套 SQL 分隔符的正则表达式

sql - 如何在忽略两列在 Postgres 中的顺序的同时限制它们的唯一性

MySQL:使用两列的值计算第三列