Osc*_*Ryz 52 sql group-by distinct
考虑
create table pairs ( number a, number b )
Run Code Online (Sandbox Code Playgroud)
数据在哪里
1,1
1,1
1,1
2,4
2,4
3,2
3,2
5,1
Run Code Online (Sandbox Code Playgroud)
等等.
什么查询给了我b列数b的不同值所以我可以看到
1,1
5,1
2,4
3,2
Run Code Online (Sandbox Code Playgroud)
只要
我试过了
select distinct ( a ) , b from pairs group by b
Run Code Online (Sandbox Code Playgroud)
但是给了我"不是一个表达的群体"
Mic*_*ker 71
你的意思是
SELECT DISTINCT a, b FROM pairs;
Run Code Online (Sandbox Code Playgroud)
要么
SELECT a, b FROM pairs GROUP BY a, b;
Run Code Online (Sandbox Code Playgroud)
Stu*_*rtQ 16
如果您想将1,2和2,1视为同一对,那么这将为您提供MS-SQL上的唯一列表:
SELECT DISTINCT
CASE WHEN a > b THEN a ELSE b END as a,
CASE WHEN a > b THEN b ELSE a END as b
FROM pairs
Run Code Online (Sandbox Code Playgroud)
灵感来自@meszias上面的回答
ang*_*son 10
这将为您提供您给出的结果作为示例:
SELECT DISTINCT a, b
FROM pairs
Run Code Online (Sandbox Code Playgroud)
小智 5
如果你想过滤元组,你可以这样使用:
select distinct (case a > b then (a,b) else (b,a) end) from pairs
Run Code Online (Sandbox Code Playgroud)
好东西是你不必使用 group by。