我想找到一列中的所有重复项并显示主键以便清理它们。
因此,在学习了一系列教程之后,我得到了这个应该可以工作并且不返回任何行的东西,这很棒,因为这意味着我不需要清理任何东西。 'equipment_id'是表中的主键
SELECT
equipment_id, tent_id, COUNT(*)
FROM
equipment
GROUP BY
equipment_id, tent_id
HAVING
COUNT(*) > 1
但是当我只是在不涉及主键列的情况下寻找这样的骗子时
SELECT
tent_id, COUNT(*)
FROM
equipment
GROUP BY
tent_id
HAVING
COUNT(*) > 1
我得到了 900 多个结果,这也很好,但我需要主键以便我知道要编辑哪些。
TABLE equipment
ROWS
equipment_id tent type tent_id note
100 large 66666 out
101 small 66666 in
102 small 55555 in
103 large 44444 in
104 small 33333 out
我想要的结果是这样的
100 66666
101 66666
最佳答案
基本上你需要不同的 equipment_id
与分组的 tent_id
SELECT *
FROM equipment
WHERE tent_id IN
(
SELECT tent_id
FROM equipment
GROUP BY tent_id
HAVING COUNT(DISTINCT equipment_id) > 1
);
关于sql - 根据列中的重复项选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58469884/