Autor Zpráva
danhill
Profil
Ahoj,
prosím o pomoc s relativně jednoduchým dotazem, ale nedaří se mi ho poskládat.
Pořád se mi nedaří dostat výsledek součtu duplicit ze dvou různých sloupců v jedné tabulce.
Tedy mám dva sloupce v tabulce. řekněme PAT a MAT.
V obou sloupcích jsou čísla a já hledám počet čísel 5 ve sloupci PAT a počet čísel 5 ve sloupci MAT.
Potřebuji výsledek, který by vypadal takto :
|| PAT || MAT ||
|| 32 || 17 ||

Když hledám počet duplicit v jednom sloupci, tak je to snadné.
SELECT COUNT(PAT) AS PAT FROM tabulka WHERE PAT = 5 GROUP BY PAT
Ale jak spočítat i duplicity v druhém sloupci v jednom dotaze mi nějak uniká. Předpokládám, že to vůbec lze, teda.
Děkuji moc.
TomášK
Profil
Je-li to MySQL, tak SUM(PAT = 5), v jiných databázích se BOOLEAN na INT nepřevádí a je potřeba použít CASE.
danhill
Profil
Ano ano, omlouvám se, je to mysql...
Tedy takto je to správně?
SELECT SUM(PAT=5) AS PAT, SUM(MAT=5) AS MAT FROM tabulka

Děkuji mockrát, věděl jsem,že to pro Vás bude hračka. Díky mnohokrát.
Kajman
Profil
Pokud bude na sloupcích index, tak by měla být na velkých datech výrazně rychlejší varianta

SELECT (SELECT COUNT(*) FROM tabulka WHERE PAT = 5) AS PAT,
       (SELECT COUNT(*) FROM tabulka WHERE MAT = 5) AS MAT
FROM DUAL

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: