2014-02-18 5 views
-1

У меня есть имя таблицы TB1подсчета строк в MySQL с PHP с определенным значением

tb1 
id zone pressure 
1 India Yes 
2 USA No 
3 UK Yes 
4 India Yes 
5 AUS No 
6 UK Yes 

давления имеют два вида записи, как «да» и «нет» мне нужно привести таким образом

Zone Pressure 
     Yes No 
India 2 0 
USA  0 1 
UK  1 1 
AUS  0 1 

мои усилия до сих пор ...

$result = mysql_query("SELECT Zone FROM Tb1 WHERE Pressure = 'Yes'"); 
$num_rows = mysql_num_rows($result); echo $num_rows . " \n"; 
+4

Вы пробовали что-нибудь до сих пор? – Rikesh

+0

$ result = mysql_query ("SELECT Zone FROM Tb1 WHERE' Pressure' = 'Yes' "); $ num_rows = mysql_num_rows ($ result); echo $ num_rows. "\ n"; – user3283373

+0

, но это дает всю общую строку во всей зоне, а не в конкретной зоне типа – user3283373

ответ

1
SELECT zone, 
     SUM(pressure = 'Yes') AS `Yes`, 
     SUM(pressure = 'No') AS `No` 
    FROM tb1 
GROUP BY zone 

делает трюк, в котором вы нуждаетесь. Это агрегированный запрос. Вот скрипка. http://sqlfiddle.com/#!2/54889/2/0

0

Вы можете сделать как

select tb1.zone, 
sum(tb1.pressure = 'Yes') as Yes, 
sum(tb1.pressure = 'No') as No 
from tb1 
group by tb1.zone 
1
SELECT Zone, 
     SUM(pressure='Yes') as `Yes`, 
     SUM(pressure='No') as `No` 
FROM Tb1 
GROUP BY Zone; 
Смежные вопросы