Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[SQL] Zapytanie

0 views
Skip to first unread message

Christopher Z.

unread,
Dec 19, 2009, 11:52:47 AM12/19/09
to
Witam,

nastepujacy problem

Mam tabele:

Kolumna1 | Kolumna2
-----------------------------
_Wartosc1| 0
_Wartosc1| 1
_Wartosc1| 2
_Wartosc1| 1
_Wartosc1| 1
_Wartosc2| 0
_Wartosc2| 1
_Wartosc3| 2
_Wartosc3| 1
_Wartosc3| 1


Czy jest możliwość aby bez zagnieżdżonych zapytań policzyc wszystkie 0
dla Wartosc1, 1 dla Wartosc1, 2 dla Wartosc1 itd. Czyli zagregować dla
konkrentych wartosci.

czyli na wyjsciu chcialbym otrzymac:

Kolumna1 | 0|1|2
-----------------------------
_Wartosc1| 1|3|1
_Wartosc2| 1|1|0
_Wartosc3| 0|2|1

Pozdrawiam

i/o

unread,
Dec 19, 2009, 1:01:41 PM12/19/09
to
Christopher Z. pisze:

> Witam,
>
> nastepujacy problem
>
> Mam tabele:
>
> Kolumna1 | Kolumna2
> -----------------------------
> _Wartosc1| 0
> _Wartosc1| 1
> _Wartosc1| 2
> _Wartosc1| 1
> _Wartosc1| 1
> _Wartosc2| 0
> _Wartosc2| 1
> _Wartosc3| 2
> _Wartosc3| 1
> _Wartosc3| 1
>
>
> Czy jest mo�liwo�� aby bez zagnie�d�onych zapyta� policzyc wszystkie 0
> dla Wartosc1, 1 dla Wartosc1, 2 dla Wartosc1 itd. Czyli zagregowaďż˝ dla

> konkrentych wartosci.
>
> czyli na wyjsciu chcialbym otrzymac:
>
> Kolumna1 | 0|1|2
> -----------------------------
> _Wartosc1| 1|3|1
> _Wartosc2| 1|1|0
> _Wartosc3| 0|2|1
>
> Pozdrawiam


no jako pivot ale czy baza to obs�uguje? postgres nie

Sławomir Szyszło

unread,
Dec 19, 2009, 1:10:27 PM12/19/09
to
Dnia 2009-12-19 17:52, U�ytkownik Christopher Z. napisa�:

> Witam,
>
> nastepujacy problem
>
> Mam tabele:
>
> Kolumna1 | Kolumna2
> -----------------------------
> _Wartosc1| 0
> _Wartosc1| 1
> _Wartosc1| 2
> _Wartosc1| 1
> _Wartosc1| 1
> _Wartosc2| 0
> _Wartosc2| 1
> _Wartosc3| 2
> _Wartosc3| 1
> _Wartosc3| 1
>
>
> Czy jest mo�liwo�� aby bez zagnie�d�onych zapyta� policzyc wszystkie 0
> dla Wartosc1, 1 dla Wartosc1, 2 dla Wartosc1 itd. Czyli zagregowaďż˝ dla

> konkrentych wartosci.
>
> czyli na wyjsciu chcialbym otrzymac:
>
> Kolumna1 | 0|1|2
> -----------------------------
> _Wartosc1| 1|3|1
> _Wartosc2| 1|1|0
> _Wartosc3| 0|2|1

SELECT kolumna1, sum(case kolumna2 when 0 then 1 else 0 end) as "0"
,sum(case kolumna2 when 1 then 1 else 0 end) as "1"
sum(case kolumna2 when 2 then 1 else 0 end) as "0"
FROM TABELA
GROUP BY kolumna1;

P.S.
Pisz o jakďż˝ bazďż˝ chodzi.

--
S�awomir Szysz�o
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?group=pl.comp.bazy-danych

Christopher Z.

unread,
Dec 19, 2009, 1:18:21 PM12/19/09
to
Sęk w tym, że nie chodzi o baze danych tylko o Hibernate Query Language
(HQL), wlasnie tak sobie myslalem, ze jak dam rade to napisac w
czystym SQL to pozniej latwo przeksztalcic na HQL.

Dziekuje za pomoc.

Christopher Z.

unread,
Dec 19, 2009, 1:26:45 PM12/19/09
to

Jednak Case jest w HQL.

Pozdrawiam.

Łukasz Kalbarczyk

unread,
Dec 26, 2009, 4:40:28 PM12/26/09
to
Dnia Sat, 19 Dec 2009 08:52:47 -0800 (PST), Christopher Z. napisaďż˝(a):

> Witam,
>
> nastepujacy problem
>
> Mam tabele:
>
> Kolumna1 | Kolumna2
> -----------------------------
> _Wartosc1| 0
> _Wartosc1| 1
> _Wartosc1| 2
> _Wartosc1| 1
> _Wartosc1| 1
> _Wartosc2| 0
> _Wartosc2| 1
> _Wartosc3| 2
> _Wartosc3| 1
> _Wartosc3| 1
>

> Czy jest mo�liwo�� aby bez zagnie�d�onych zapyta� policzyc wszystkie 0
> dla Wartosc1, 1 dla Wartosc1, 2 dla Wartosc1 itd. Czyli zagregowaďż˝ dla
> konkrentych wartosci.

Je�li w Kolumnie2 maj� by� dowolne warto�ci to si� nie da
w taki spos�b, bo to nie b�dzie relacja - ale da si� na przyk�ad
tak:

Wartosc1|0|1
Wartosc1|1|3
Wartosc1|2|2
Wartosc2|0|1
Wartosc2|1|1
itd.

> czyli na wyjsciu chcialbym otrzymac:
> Kolumna1 | 0|1|2
> -----------------------------
> _Wartosc1| 1|3|1
> _Wartosc2| 1|1|0
> _Wartosc3| 0|2|1

A to ju� sobie "u�o�ysz".

--
�K (2009-12-26 22:37:22)

0 new messages