Afzonderlijk paar waarden SQL

Overweeg

create table pairs ( number a, number b ) 

Waar de gegevens zijn

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

Enz.

Welke zoekopdracht geeft me de verschillende waarden die de nummerkolom b heeft, zodat ik het kan zien

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

alleen

Ik heb het geprobeerd

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

maar geeft me “geen groep op uitdrukking”


Antwoord 1, autoriteit 100%

Wat je bedoelt is ofwel

SELECT DISTINCT a, b FROM pairs;

of

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

Antwoord 2, autoriteit 22%

Als je 1,2 en 2,1 als hetzelfde paar wilt behandelen, dan krijg je de unieke lijst op 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

Geïnspireerd door het antwoord van @meszia hierboven


Antwoord 3, autoriteit 12%

Dit geeft je het resultaat dat je als voorbeeld geeft:

SELECT DISTINCT a, b
FROM pairs

Antwoord 4, autoriteit 5%

als je de tuples wilt filteren die je op deze manier kunt gebruiken:

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

het goede is dat je group by niet hoeft te gebruiken.


Antwoord 5

Als je gewoon een tellingvan de verschillende paren wilt.

De eenvoudigste manier om dat te doen is als volgt:
SELECT COUNT(DISTINCT a,b) FROM pairs

De vorige oplossingen zouden alle paren weergeven en dan zou je een tweede zoekopdracht moeten doen om ze te tellen.

Other episodes