Hei.
Onko MySQL mahdollista hakea kaksi counttia samassa kyselyssä.
eli haen näin yhden countin:
SELECT COUNT(*) as 'kaikki' FROM taulu_1 WHERE taulu_2_id IN (SELECT id FROM taulu_2 WHERE joku on jotain);
Toinen count olisi tälläinen
SELECT COUNT(*) AS 'miehet' FROM taulu_1 WHERE taulu_2_id IN( SELECT id FROM taulu2_ WHERE joku on jotain) AND taulu_1.sukupuoli='mies';
Miten saisin haettua molemmat countit samassa kyselyssä.
Onko se mahdollista?
Miten olisi
SELECT sukupuoli, COUNT(*) AS maara FROM taulu_1 WHERE ... GROUP BY sukupuoli;
Näin saisit kunkin eri sukupuolen määrän, ja kokonaismäärä on helppo laskea tuosta käsin.
Jos välttämättä haluat, voit käyttää alikyselyitä.
SELECT (SELECT COUNT(*) ...) AS kaikki, (SELECT COUNT(*) ...) AS miehet;
Kiitos Metabolix.
Käytän tuota subqueryä, koska teen vastaavanlaisen kyselyn muualla, missä
vaihtoehtoja on useampi kuin kaksi, kuten tässä oli (mies, nainen).
Unohda Count(*) ja käytä SUM-funktiota yhdistettynä Case lauseella:
Näinikään:
SELECT sum(1) as 'kaikki' , sum(case when taulu_1.sukupuoli='mies' then 1 else 0 end) as 'Miehet' , sum(case when taulu_1.sukupuoli='Nainen' then 1 else 0 end) as 'Naiset' FROM taulu_1 WHERE taulu_2_id IN (SELECT id FROM taulu_2 WHERE joku on jotain);
Katsos vain.
Kiitos Hycke. Tuohan hoitaa homman!
Aihe on jo aika vanha, joten et voi enää vastata siihen.