z tym union pewenie będzie ok, tylko jak tak zrobię:
select kraj, count(wzrost) as liczbaZawodnikow from zawodnicy where wzrost > 180 group by kraj
UNION
select kraj, count(wzrost) as liczbaZawodnikow from zawodnicy where wzrost < 180 group by kraj
to wyświetla mi tak:
kraj liczbaZawodnikow
GER 3
FIN 2
AUT 1
NOR 1
POL 2
GER 2
FIN 1
NOR 2
USA 1
i teraz to drugie zapytanie musi być skonstruowane tak aby wyświetliły się tylko kraje gdzie nie ma zawodnika powyżej 180 cm, a mi wyświetla liczbę zawodników z poniżej 180 cm
myślę o case when then ale to chyba ciężko będzie w tym przypadku
już prawie mam
select kraj, count(wzrost) from zawodnicy where wzrost > 180
group by kraj
union
select kraj, case when wzrost > 180 then 1 when wzrost < 180 then 0 end from zawodnicy
group by kraj
kraj lizczbaZawodnikow
GER 3
FIN 2
AUT 1
NOR 1
POL 0
GER 0
FIN 0
NOR 0
USA 0
tyle ze jeszcze wyswietla niemcy, finladie i norwegie, a tam sa osoby powyżej 180 cm,
próbowałem z distinct(kraj) w drugim zapytaniu ale nie działa
Cytat(trueblue @ 24.02.2019, 21:19:49 )

Jeśli masz unikalny klucz (tu id):
SELECT z1.kraj, SUM(z2.wzrost>180)
FROM zawodnicy AS z1
LEFT JOIN zawodnicy AS z2 ON z2.id=z1.id
GROUP BY z1.kraj
to działa, ale nie rozumiem tego do końca, nie rozumiem w którym miejscu zapytania pojawia się wynik kraju gdzie nie występuje zawodnik ze wzrostem powyżej 180