PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
MySql COUNT kokku ja erinevused
Postitaja: Raul 2015-06-18 12:55:22
Tabel loomad

PHP kood:
 
+---------+------+----------+
|
loom     sugu peremees |
+---------+------+----------+
kass    i    Jüri     |
kass    e    Malle    |
kass    e    Jüri     |
koer    e    Jüri     |
koer    e    Malle    |
kass    e    Jüri     |
koer    e    Malle    |
+---------+------+----------+

Leiab kokku, kui palju on peremehel erinevaid loomi.

PHP kood:
 
SELECT loom
COUNT(loom) AS loomiperemees FROM loomad GROUP BY peremeesloom;
+---------+---------+--------+
|
loom     loomi   |peremees|
+---------+---------+--------+
kass    |       Jüri   |
koer    |       Jüri   |
kass    |       Malle  |
koer    |       Malle  |
+---------+---------+--------+

Leiab kokku, kui palju on peremehel erinevaid loomi soo järgi

PHP kood:
 
SELECT loom
suguCOUNT(loom) AS loomiperemees FROM loomad GROUP BY peremeesloomsugu;
+---------+-------+---------+--------+
|
loom     |sugu   loomi   |peremees|
+---------+-------+---------+--------+
kass    e     |       Jüri   |
kass    i     |       Jüri   |
koer    e     |       Jüri   |
kass    e     |       Malle  |
koer    e     |       Malle  |
+---------+-------+---------+--------+


Aga tahaks hoopis nii, et erinevaid loomi kokku, neist i-isaseid ja e-emaseid
Milline peaks välja nägema päring?

PHP kood:
 
+---------+-------+-------+---------+--------+
|
loom     |sugu_i |sugu_e loomi   |peremees|
+---------+-------+-------+---------+--------+
kass    1     2     |       Jüri   |
koer    0     1     |       Jüri   |
kass    0     1     |       Malle  |
koer    0     1     |       Malle  |
+---------+-------+-------+---------+--------+

Viimati muudetud: 18-06-2015 12:58:48
Muutja: Raul
Põhjus:

RE: MySql COUNT kokku ja erinevused
Postitaja: humunuk 2015-06-18 14:46:22
http://sqlfiddle.com/#!9/ab0b7/1

annab veits teistsuguse tabeli kui sul toodud välja, aga põhimõtteliselt on sisu sama
RE: MySql COUNT kokku ja erinevused
Postitaja: blaa 2015-06-19 12:25:54
peremehe järgi ka vaja grupeerida ma arvan.


Pole just kõige elegantsem aga nii saab:

select A.loom, (select count(*) from loomad where A.peremees=peremees and A.loom=loom and sugu="e") as emaseid, (select count(*) from loomad where A.peremees=peremees and A.loom=loom and sugu="i") as isaseid, A.peremees from loomad as A group by A.peremees, A.loom;
RE: MySql COUNT kokku ja erinevused
Postitaja: blaa 2015-06-19 12:28:02
loomad kokku ka:
select A.loom, count(*) as loomi, (select count(*) from loomad where A.peremees=peremees and A.loom=loom and sugu="e") as emaseid, (select count(*) from loomad where A.peremees=peremees and A.loom=loom and sugu="i") as isaseid, A.peremees from loomad as A group by A.peremees, A.loom;
RE: MySql COUNT kokku ja erinevused
Postitaja: aaaaaaaaa 2015-06-19 18:22:40
siin mingi vana asi (mysql),peaks sobima:

tabel `pets_and_their_friends`

id name pet pet_sex
1 mari papagoi m
2 siiri kass f
3 mari hamster f
4 ülle koer f
5 siiri koer m
6 mari kalakesed f
7 ülle elevant f
8 ülle jõehobu m
9 mari sebra m
10 siiri jõehobu f
11 siiri mees m
12 mari kass f
13 siiri jõehobu m

-------------------------------
p'ring:

set @nr=0;
SELECT @nr:=@nr+1 as row,
`id`
, `pet` as pet_name
, `pet_sex`
, count(`pet_sex`) as pet_by_sex
, (SELECT count(pet) FROM `pets_and_their_friends` where `pet` = `pet_name`) as this_pets_total
, group_concat( `name` separator ' & ') AS `pet_friend`
FROM `pets_and_their_friends`
group by `pet_name`, `pet_sex`
ORDER BY `pet_name` ASC

------------

vastus

row id pet_name pet_sex pet_by_sex this_pets_total pet_friend

1 7 elevant f 1 1 ülle
2 3 hamster f 1 1 mari
3 10 jõehobu f 1 3 siiri
4 8 jõehobu m 2 3 ülle & siiri
5 6 kalakesed f 1 1 mari
6 2 kass f 2 2 siiri & mari
7 4 koer f 1 2 ülle
8 5 koer m 1 2 siiri
9 11 mees m 1 1 siiri
10 1 papagoi m 1 1 mari
11 9 sebra m 1 1 mari
RE: MySql COUNT kokku ja erinevused
Postitaja: Raul 2015-06-24 22:13:54
Tänud. Sain toodud näidete varal omal asja tööle.


Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0900001525879