Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL kaksi counttia samassa kyselyssä

Ariel [18.02.2010 10:30:54]

#

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?

Metabolix [18.02.2010 12:18:34]

#

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;

Ariel [18.02.2010 16:06:10]

#

Kiitos Metabolix.

Käytän tuota subqueryä, koska teen vastaavanlaisen kyselyn muualla, missä
vaihtoehtoja on useampi kuin kaksi, kuten tässä oli (mies, nainen).

Hycke [19.02.2010 07:03:16]

#

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);

Ariel [19.02.2010 09:25:12]

#

Katsos vain.

Kiitos Hycke. Tuohan hoitaa homman!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta