我有一张类似这样的表...
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
但不是两者。
答案 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的聚合函数,就像SUM
,AVG
,MAX
,MIN
,COUNT
一样, etc ...在输出示例中,您使用的是MIN
,然后查询将是:
SELECT A, MIN(B)
FROM ABTABLE
GROUP BY A
如果你想计算B元素,你会使用:
SELECT A, COUNT(B)
FROM ABTABLE
GROUP BY A
它将返回B中与NULL