create table pairs (number a, number b)
當數據
1,1
1,1
1,1
2,4
2,4
3,2
3,2
5,1
等等
什麼查詢給了我不同的值數列b有這樣我就可以看到
1,1
5,1
2,4
3,2
只有
我已經試過
select distinct (a) , b from pairs group by b
,但 「通過表情不是一組」
create table pairs (number a, number b)
當數據
1,1
1,1
1,1
2,4
2,4
3,2
3,2
5,1
等等
什麼查詢給了我不同的值數列b有這樣我就可以看到
1,1
5,1
2,4
3,2
只有
我已經試過
select distinct (a) , b from pairs group by b
,但 「通過表情不是一組」
你是什麼意思是要麼
SELECT DISTINCT a, b FROM pairs;
或
SELECT a, b FROM pairs GROUP BY a, b;
這給了我會給你你作爲e給的結果xample:
SELECT DISTINCT a, b
FROM pairs
:
select distinct (case a > b then (a,b) else (b,a) end) from pairs
的好東西是你沒有通過使用組。
我非常希望這種方法,但繼續遇到「ORA-00907:缺少右括號」的錯誤。這種方法對列進行排序的語法規則是什麼?當然是 – Chris 2012-07-11 17:46:43
如果你只是想要一個計數的不同對。
做到這一點的最簡單的方法是如下 SELECT COUNT(DISTINCT a,b) FROM pairs
以前的解決方案將列出所有的對,然後你不得不做第二次查詢指望他們。
如果要要正確對待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
通過@meszias啓發回答上述
!然而,在我讀這個答案之前,我被困在如何做到這一點。謝謝。 – Greg 2016-11-26 16:21:45
現在我想到了,每列的分組與任何分組都是一樣的。你打了我30秒。 +1 – JamesMLV 2009-08-25 20:17:59
JamesMLV,如果您有重複的行,按每列分組與不按任何分組相同。考慮'SELECT a,b,count(*)FROM pairs'的輸出。 – 2009-08-25 20:22:06
奧斯卡現在我意識到我的查詢會給你額外的列b = 1(我實際上誤讀它,知道你想要兩個列,我假設你想要不同的行)... – 2009-08-25 20:26:33