从两列中查找不同的值

时间:2014-07-24 18:20:34

标签: mysql sql

我有一张类似这样的表...

A        B
100      423
100      423
323      123
323      153
323      153
521      321
521      321
321      321

如何编写查询以便它只获得唯一的A AND B? 我希望结果看起来像这样。

A        B
100      423
323      123
323      153
521      321
321      321

到目前为止,我只能使用

将其列为一列唯一的
select * from ABtable group by A

给出了

A        B
100      423
323      123
521      321

...或

select * from ABtable group by B

将返回

A        B
100      423
323      123
323      153
321      321

但不是两者。

2 个答案:

答案 0 :(得分:0)

您可以按多列分组......

Select *
From   ABTable
Group By A, B

根据表格定义和可能的where / having子句,您可能会看到使用distinct而不是

略微提升性能
Select Distinct A, B
From   ABTable

基准和决定。

答案 1 :(得分:0)

要拥有不同的行,您需要执行

SELECT DISTINCT *
FROM ABTABLE

要按A分组,您需要选择B的聚合函数,就像SUMAVGMAXMINCOUNT一样, etc ...在输出示例中,您使用的是MIN,然后查询将是:

SELECT A, MIN(B)
FROM ABTABLE
GROUP BY A

如果你想计算B元素,你会使用:

SELECT A, COUNT(B)
FROM ABTABLE
GROUP BY A

它将返回B中与NULL

不同的元素数