Reputation: 69
I have a table name is tb1
tb1
id zone pressure
1 India Yes
2 USA No
3 UK Yes
4 India Yes
5 AUS No
6 UK Yes
Pressure have two kind of entry like "yes" and "no" i need result in this manner
Zone Pressure
Yes No
India 2 0
USA 0 1
UK 1 1
AUS 0 1
My effort so far...
$result = mysql_query("SELECT Zone FROM Tb1 WHERE Pressure = 'Yes'");
$num_rows = mysql_num_rows($result); echo $num_rows . " \n";
Upvotes: 0
Views: 1453
Reputation: 11
SELECT Zone,
SUM(pressure='Yes') as `Yes`,
SUM(pressure='No') as `No`
FROM Tb1
GROUP BY Zone;
Upvotes: 1
Reputation: 33935
SELECT zone
, SUM(pressure='yes') yes
, SUM(pressure='no') no
FROM my_table
GROUP
BY zone;
Upvotes: 1
Reputation: 108641
SELECT zone,
SUM(pressure = 'Yes') AS `Yes`,
SUM(pressure = 'No') AS `No`
FROM tb1
GROUP BY zone
does the trick you need. It's an aggregate query. Here's a fiddle. http://sqlfiddle.com/#!2/54889/2/0
Upvotes: 1
Reputation: 44844
You can do as
select tb1.zone,
sum(tb1.pressure = 'Yes') as Yes,
sum(tb1.pressure = 'No') as No
from tb1
group by tb1.zone
Upvotes: 0