Portál AbcLinuxu, 1. června 2024 13:39


Dotaz: Dotaz na pocet unikatnich n-tic

25.8.2022 14:07 Jouda
Dotaz na pocet unikatnich n-tic
Přečteno: 965×
Odpovědět | Admin
Chci spocitat pocet unikatnich n-tic z nejake tabulky a potrebuju to zprovoznit v JPA/QueryDSL. COUNT DISTINCT na vice sloupcich a subquery ve FROM tam nejde pouzit. Zatim me napadlo jen CONCATnout ty sloupce + COUNT DISTINCT. Nasel jsem jeste COUNT(*) OVER(), ale to nebude take fungovat. Jde prepsat takovy dotaz jeste nejak jinak?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.8.2022 15:33 ehmmm
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co to je n-tice? Mel bys nejaky jednoduchy priklad, co cches?
25.8.2022 15:45 Jouda
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Zapsat jinak toto: SELECT COUNT(DISTICT col1, col2, col3) FROM table1; SELECT COUNT(*) FROM (SELECT col1, col2, col3 FROM table1 GROUP BY col1, col2, col3) AS xxx;

muj hack: SELECT COUNT(CONCAT(col1, col2, col3)) FROM table1;
25.8.2022 16:42 tttttttttt
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Ten hack nefunguje pro
('a', 'bb', 'c')
a
('ab', 'b', 'c')
25.8.2022 16:52 Jouda
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Jde tam samo pridat nejaky "unikatni" separator, ale cele jsem to nazval hack a zadam o radu ;)
26.8.2022 13:34 ehmmm
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Mne by ten hack nevadil. I kdyz asi by to chtelo jeste nejak oescapovat vyskyt separatoru ve stringu. Zalezi, jak moc by to muselo byt bombenfest.

Jenom nechapu, proc nemuzes pouzit neco jako:
select count(*) from (

select distinct column1, column2, column3 from some_table

)
26.8.2022 17:06 Jouda
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Protoze to neni z nejakeho duvodu podporovano. QueryDSL pouzivam, protoze potrebuju dotaz dynamicky modifikovat a lepe to cte...
1.9.2022 15:09 Tomas
Rozbalit Rozbalit vše Re: Dotaz na pocet unikatnich n-tic
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ne nedá, count( distinct x ) je v principu dvojitá agregace. Přímo v SQL kromě zmíněného distinct není dvojitá agregace zabudována.

Buď si přestanete házet klacky pod nohy (=JPA), nebo vám není pomoci.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.