如何从具有相同ID的多行中获取单行?

时间:2019-07-07 23:04:58

标签: sql

我有多行具有相同的ID。如何显示每个唯一ID的任何一行?

我尝试了

select Col_1, Col_2, Col_3 from Table group by Col_1. 

但这会引发错误,说Col_2和Col_3不在group by子句中(我想知道语法是否错误)

这是给定的表

Col_1  Col_2  Col_3
1        A       B
1        B       A
2        C       D
2        D       C

预期输出

Col_1  Col_2  Col_3
1        A       B
2        C       D

2 个答案:

答案 0 :(得分:0)

您非常接近...使用group by时,不属于分组语句的列必须是聚合函数的一部分。这样,您可以执行以下操作:

select Col_1, Max(Col_2), Max(Col_3) from Table group by Col_1

我在这里使用了max Aggregation函数,但是您可以使用任何想要的函数。上面的代码可以满足您的需求,并且可以在大多数数据库上运行

答案 1 :(得分:0)

SELECT t.Col_2, t.Col_3

FROM table as t

ORDER BY t.Col_1