Autor | Zpráva | ||
---|---|---|---|
danhill Profil |
#1 · Zasláno: 7. 11. 2017, 20:23:53
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 |
#2 · Zasláno: 7. 11. 2017, 20:35:05
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 |
#3 · Zasláno: 7. 11. 2017, 20:43:23
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 |
#4 · Zasláno: 8. 11. 2017, 10:38:37
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 |
||
Časová prodleva: 6 let
|
0