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.