Autor Zpráva
Báža
Profil *
Možná název tématu zní kostrbatě, ale když to zjednoduším, tak jde o tohle: dejme tomu, že mám tabulku se seznamem studentů na nějaké škole, přičemž by tam byly taky sloupce "pohlaví" a "třída". A já chci vyrobit dotaz, který mi zjistí u každé třídy zároveň počet kluků i počet holek. Dvěma dotazy by to šlo:


SELECT trida, COUNT(*) as kluci FROM studenti WHERE pohlavi = "m" GROUP BY trida;
SELECT trida, COUNT(*) as holky FROM studenti WHERE pohlavi = "z" GROUP BY trida;

.
Jak to ale udělat, aby to bylo jenom v jednom dotazu?
Dík.
kd
Profil *
A co nejak takto

SELECT studenti.trida, studenti.pohlavi, Count(studenti.pohlavi) AS pocet
FROM studenti
GROUP BY studenti.trida, studenti.pohlavi
kd
Profil *
pak by melo vypadnout neco takovehoto asi

trida pohlavi pocet
1a m 1
1a z 2
2a m 2
2a z 1

ale nevim jestli je to co potrebujete
Kajman_
Profil *
SELECT trida, COUNT(*) vsi, sum(pohlavi = "m") kluci, sum(pohlavi = "z") holky FROM studenti GROUP BY trida;
Báža
Profil *
Díky, obojí to funguje, hlavně jsem neznal sum(sloupec = "hodnota"). Ale ještě jedna věc: dejme tomu, že mám firmu s několika distribučními sklady. V tabulce by byly sloupce kategorie, zboží, počet a sklad. Vypadalo by to třeba takhle:
kytky slunečnice 5 Praha
kytky slunečnice 2 Kralupy
kytky pampeliška 3 Praha
nářadí kleště 9 Kralupy
nářadí kleště 3 Kladno

A já chci, aby vylezlo z dotazu něco takového:
Kategorie Praha Kralupy Kladno
----------------------------------------------------------
kytky 8 2 0
nářadí 0 9 3

Šlo by to nějak...? Dík.
Kajman_
Profil *
select kategorie, sum(if (sklad='Praha',pocet,0)) praha,... from tabulka group by kategorie
Toto téma je uzamčeno. Odpověď nelze zaslat.