Zliczanie wieku według ustalonych przedziałów

Zliczanie wieku według ustalonych przedziałów
SL
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam

Mam takie pytanie:

Musze zliczyć ile jest osobników w danym przedziale wiekowym. W tabeli mam kolumne wiek oraz zadeklarowane przedziały:

do 15 lat
16-30 lat
31-50 lat
51-70 lat
od 71 lat

Zrobiłem to w ten sposób:
select count() dla I przedział
union
select count(
) dla II przedział
union
...

Da się to zrobić bardziej elegancko, bo szczerze mówiąc ten sposób jest trochę naciągany, ale działa ?? ;-)

Edit:
Wyniki mam otrzymać w postaci:
Przedział I | liczba
Przedział II | liczba
itd.

crowa
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 295
0

ja bym poszukal czegos w funkcja PARTITION BY
Dziala od wersji TSQL 2005

b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
0

SELECT
SUM(CASE WHEN WIEK <= 15 THEN 1 ELSE 0 END) AS P1,
SUM(CASE WHEN WIEK > 15 AND WIEK WIEK <=30 THEN 1 ELSE 0 END) AS P2,
..

b

SL
  • Rejestracja: dni
  • Ostatnio: dni
0

Zapomniałem napisać, że wyniki mają być w postaci:
Przedział I | liczba
Przedział II | liczba
itd.

więc b0bik twój sposób mi się nie przyda, ale dzięki

b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
0

No to istotny szczegół : ) Zrób sobie stored procke która wykorzystuje zapytanko które Ci dałem a potem zwraca każdą kolumnę - troche kombinowania. Co Ci sie nie podoba w tym unionie skoro działa.

b

SL
  • Rejestracja: dni
  • Ostatnio: dni
0

tak tylko pytałem z ciekawości, czy jest jakiś lepszy sposób :)

Pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.