Statisticky select pro castecne soucty

12 views
Skip to first unread message

tomas.emresz

unread,
Dec 13, 2022, 3:02:29 PM12/13/22
to PostgreSQL-cz
Zdarec,
za boha si nemuzu vzpomenout, jak se to jmenovalo, ci jak se to delalo.
Mam tabulku s prodeji zbozi, tedy nazev, barva, velikost a potreboval bych udelat
select
nazev, barva, zbozi, count(id) as pocet
from
 tabulka
group by nazev, barva, zbozi

Akorat, ze bych rad i soucty za stejne nazvy, stejne nazevy v barve, nazvy v barve ve velikosti (toto jedinne vlastne mam z vyse uvedeneho selectu).
tedy cosi jako
Tricko, 10
Tricko, modre, 5
Tricko, zelene, 5
Tricko, modre, L 5
Tricko, zelene, L 2
Tricko, zelene, XL 3

Poradi si vyresim, jen za boha nevim, jak se delaly ty soucty dle jednotlivych group. Mysql na to snad mela variantu group by ale nejsem si jist.

Diky za nakopnuti spravnym smerem.
Tom

Tomáš Emresz

unread,
Dec 13, 2022, 3:16:52 PM12/13/22
to postgr...@googlegroups.com
GROUP BY ROLLUP(.....)

Tomas

út 13. 12. 2022 v 21:02 odesílatel tomas.emresz <tomas....@iqsolutions.cz> napsal:
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru tématu ve skupině „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li odběr tématu zrušit, přejděte na https://groups.google.com/d/topic/postgresql-cz/uSlaymTumMg/unsubscribe.
Chcete-li zrušit odběr skupiny a všech témat v ní, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/5b23b8a1-e4b2-4776-a874-37e1f5667150n%40googlegroups.com.

Petr Boháč

unread,
Dec 13, 2022, 5:31:12 PM12/13/22
to PostgreSQL-cz

--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.

David Turoň

unread,
Dec 14, 2022, 12:46:18 AM12/14/22
to postgr...@googlegroups.com
Asi hledas grouping sets - ROLLUP/CUBE

=> SELECT make, model, GROUPING(make,model), sum(sales) FROM items_sold GROUP BY ROLLUP(make,model);
 make  | model | grouping | sum
-------+-------+----------+-----
 Foo   | GT    |        0 | 10
 Foo   | Tour  |        0 | 20
 Bar   | City  |        0 | 15
 Bar   | Sport |        0 | 5
 Foo   |       |        1 | 30
 Bar   |       |        1 | 20
       |       |        3 | 50
(7 rows)
Uzitecne je taky grouping, ktere ti rekne co je grupovano v konkretnim radku.
David


út 13. 12. 2022 v 21:02 odesílatel tomas.emresz <tomas....@iqsolutions.cz> napsal:
Zdarec,
--

tomas.emresz

unread,
Dec 14, 2022, 5:10:10 AM12/14/22
to PostgreSQL-cz
Jo Rollup - hledam pul dne, nevim ani co googlit a pak napisu sem a cvak.. Vzpomenu si..

Grouping ale neznam, to je nejaka bitova mapa (tedy 1 je jeden sloupec, 2 druhy, 4 treti apod) ?
Tom

Dne středa 14. prosince 2022 v 6:46:18 UTC+1 uživatel turon...@gmail.com napsal:

David Turoň

unread,
Dec 14, 2022, 7:18:21 AM12/14/22
to postgr...@googlegroups.com
Ano, bitova mapa podle poctu grupovanych sloupcu ... vzdy v poradi sloupcu 0 sloupec zahrnut do grupovani, 1 sloupec je sumarizovan jestli se to da tak napsat.
GROUPING(make,model)
0 - 00
1 - 01
3 - 11

Table 9.62. Grouping Operations

GROUPING ( group_by_expression(s) ) → integer

Returns a bit mask indicating which GROUP BY expressions are not included in the current grouping set. Bits are assigned with the rightmost argument corresponding to the least-significant bit; each bit is 0 if the corresponding expression is included in the grouping criteria of the grouping set generating the current result row, and 1 if it is not included.

David

st 14. 12. 2022 v 11:10 odesílatel tomas.emresz <tomas....@iqsolutions.cz> napsal:

tomas.emresz

unread,
Dec 14, 2022, 7:25:15 AM12/14/22
to PostgreSQL-cz
Parada, to se muze hodit :) Diky.
Tom

Dne středa 14. prosince 2022 v 13:18:21 UTC+1 uživatel turon...@gmail.com napsal:
Reply all
Reply to author
Forward
0 new messages