我有张桌子像这样..。
A B
100 423
100 423
323 123
323 153
323 153
521 321
521 321
321 321如何编写查询,使其只获得唯一的A和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但不是两者都是。
发布于 2014-07-24 18:22:29
你可以按多列分组..。
Select *
From ABTable
Group By A, B根据表定义和可能的where/ using子句,您可能会看到使用distinct来稍微提高性能
Select Distinct A, B
From ABTable基准和决定。
发布于 2014-07-24 18:22:37
要有不同的行,您需要执行以下操作
SELECT DISTINCT *
FROM ABTABLE若要按A进行分组,需要为B选择一个聚合函数,如SUM、AVG、MAX、MIN、COUNT等。在您的输出示例中,您使用的是MIN,然后查询如下:
SELECT A, MIN(B)
FROM ABTABLE
GROUP BY A如果要计数B元素,请使用:
SELECT A, COUNT(B)
FROM ABTABLE
GROUP BY A它将返回B中与NULL不同的元素数。
https://stackoverflow.com/questions/24941207
复制相似问题