zapytanie sql z podziałem wiekowym

0

Witam,
mam pytanie jak można utworzyć poprawne zapytanie aby uzyskać taki efekt. Mamy tabelę Klient, w niej kolumnę wiek_klienta. Chcemy otrzymać w wyniku przedziały wiekowe co 5 lat, oprócz pierwszego, czyli 18-19, 20-25, 26-30, 31-35, 36-40, 41-45, 46+.

Pozdrawiam.

0

Ale co w tych przedziałach wiekowych? Liczbę klientów? Jeśli tak:

SELECT '18-19', COUNT(*) FROM Klient WHERE wiek_klienta BETWEEN 18 AND 19
UNION ALL
SELECT '20-25', COUNT(*) FROM Klient WHERE wiek_klienta BETWEEN 20 AND 25
UNION ALL
SELECT '26-30', COUNT(*) FROM Klient WHERE wiek_klienta BETWEEN 26 AND 30
UNION ALL
...
UNION ALL
SELECT '46+', COUNT(*) FROM Klient WHERE wiek_klienta > 45

Może niezbyt to eleganckie, ale nie widzę sposobu, żeby to jakoś sprytniej zbudować (zwłaszcza że przedziały są różne).

1
 
select *, 	case 
				when wiek_klienta between 17 and 18 then '17-18'
				when wiek_klienta between 20 and 25 then '20-25'
				...
				when wiek_klienta > 45 then '46+'
			end
from Klient
where wiek_klienta > 17
order by wiek_klienta

pisane z palca, mogą być błędy

0

Myślałem, że może da się to zrobić jakoś prościej :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1