我有两列例如,我想列出所有行,其中ROW A中的项目在A列中出现多次,但在B列中有不同的值。到目前为止,我还没有想出答案
Column A Column B
Apple x
Banana a
Orange b
Orange b
Banana x
Avocado d
答案 0 :(得分:3)
尝试此查询:
SELECT ColumnA
FROM table t
GROUP BY ColumnA
HAVING COUNT(DISTINCT ColumnB) >= 2;
可能更有效的替代HAVING
子句是:
HAVING MIN(ColumnB) <> MAX(ColumnB)
答案 1 :(得分:0)
尝试此查询:
SELECT ColumnA
FROM mytable
GROUP BY ColumnA
HAVING COUNT(*) > 1 AND COUNT(DISTINCT ColumnB) = COUNT(*)
HAVING
值出现多次,则ColumnA
子句中的第一个谓词为真。ColumnB
中的所有值在ColumnA
组中不同,则第二个谓词为真。