SQL列出列A出现多次但具有不同列B值的所有行

时间:2015-05-20 20:08:12

标签: sql ms-access combinations distinct-values

我有两列例如,我想列出所有行,其中ROW A中的项目在A列中出现多次,但在B列中有不同的值。到目前为止,我还没有想出答案

Column A     Column B
Apple         x
Banana        a
Orange        b
Orange        b
Banana        x
Avocado       d

2 个答案:

答案 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组中不同,则第二个谓词为真。

SQL Fiddle Demo