Подтвердить что ты не робот

Четкая пара значений SQL

Рассмотрим

 create table pairs ( number a, number b ) 

Если данные

1,1
1,1
1,1
2,4
2,4
3,2
3,2
5,1

Etc.

Какой запрос дает мне различные значения, которые столбец числа b имеет. Таким образом, я могу видеть

1,1
5,1
2,4
3,2

только

Я пробовал

select distinct ( a ) , b from pairs group by b 

но дает мне "не группу по выражению"

4b9b3361

Ответ 1

Что вы имеете в виду, это либо

SELECT DISTINCT a, b FROM pairs;

или

SELECT a, b FROM pairs GROUP BY a, b;

Ответ 2

Если вы хотите, чтобы обрабатывать 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 ответил выше

Ответ 3

Это даст вам результат, который вы приводите в качестве примера:

SELECT DISTINCT a, b
FROM pairs

Ответ 4

если вы хотите отфильтровать кортежи, которые вы можете использовать следующим образом:

select distinct (case a > b then (a,b) else (b,a) end) from pairs

Хороший материал - вам не нужно использовать группу.

Ответ 5

Если вы просто хотите подсчитать отдельных пар.

Самый простой способ сделать это следующим образом SELECT COUNT(DISTINCT a,b) FROM pairs

Предыдущие решения будут перечислять все пары, а затем вам придется сделать второй запрос, чтобы посчитать их.