Autor | Zpráva | ||
---|---|---|---|
Casper Profil |
#1 · Zasláno: 3. 9. 2010, 15:59:00 · Upravil/a: Casper
Dobrý den, mám tabulku takovéhle konstrukce:
p1;p2;p3 x; h; a x; h; b x; i; c y; j; d y; k; e Potřebuji do jednoho dotazu získat ke každé hodnotě počet opakování v celém sloupci, tedy nějak takto: x(3) > h(2) > a(1) x(3) > h(2) > b(1) x(3) > i(1) > c(1) y(2) > j(1) > d(1) y(2) > k(1) > e(1) Přičemž v podstatě pro sloupec p3 to nepotřebuji, ten je vždy unikátní. Zvlášť ve třech dotazech získám data jaká potřebuji, v prvním jen výběr hodnot a ve zbylých dvou sečtu počet st.výskytů sloupce p1 a p2 takhle: SELECT COUNT(id) AS soucet FROM tb GROUP BY p1 a pak totéž pro p2. Nedaří se mi však spojit to s výběrem všech hodnot v tabulce. Našel by se prosím někdo ochotný a poradil jak na to? Předem díky. |
||
Kajman_ Profil * |
#2 · Zasláno: 3. 9. 2010, 19:00:21
select t.*, c1.pocet1, c2.pocet2, 1 pocet3 from tabulka t left join (select t1.p1, count(*) pocet1 from tabulka t1 group by t1.p1) c1 on t.p1=c1.p1 left join (select t2.p2, count(*) pocet2 from tabulka t2 group by t2.p2) c2 on t.p2=c2.p2 Občas se používá nebo něco jako, ale vyleze to v jiné formě a je to tedy třeba zpracovat aplikací. select p1, p2, p3, count(*) pocet from tabulka group by p1, p2, p3 with rollup |
||
Casper Profil |
#3 · Zasláno: 3. 9. 2010, 19:46:36
Mnohokrát děkuji... funguje parádně.
|
||
Časová prodleva: 14 let
|
0