如何编写查询以在分组行中查找重复值?

时间:2013-06-12 21:02:41

标签: mysql sql

表:

locations
---------
contract_id INT
order_position INT   # I want to find any bad data in this column

我想在给定的order_position中找到任何重复的contract_id

因此,例如,如果两个locations行的contract_id “24845”并且两者都有order_position “3 ”

我正在使用MySQL 5.1。

4 个答案:

答案 0 :(得分:3)

select contract_id, order_position
from locations
group by contract_id, order_position
having count(*) > 1

答案 1 :(得分:1)

SELECT contract_id, order_position, count(*)
FROM locations
GROUP BY contract_id, order_position
HAVING count(*) > 1

答案 2 :(得分:1)

HAVING子句可以显示存在重复项的实例:

SELECT *
FROM locations
GROUP BY contract_id, order_position
HAVING COUNT(*) > 1

答案 3 :(得分:1)

SELECT contract_id, order_position, COUNT(order_position) AS cnt
FROM locations
GROUP BY contract_id, order_position
HAVING cnt > 1;

Why COUNT(column) is usually better than COUNT(*)(好吧,这只是为了区分我的答案:D)