2013-03-23 2 views
0

В настоящее время я пытаюсь сделать MySQL запрос, который будет подсчитать число нулей и единиц по каждому пункту, следующим образом: Таблицы:MySQL подсчитывать за единицу

ID | PollID | Value 
------------------------------------ 
    1  |  1  |  1 
    2  |  1  |  1 
    3  |  2  |  0 
    4  |  2  |  1 
    5  |  1  |  0 

И результат я хочу, :

Poll | one | zero 
---------------------------------- 
     1  |  2  |  1 
     2  |  1  |  1 

Спасибо за помощь!

ответ

0

попробовать это

 select table.pollid, 
     Switch(table.value Like 1, 1)AS one, 
     Switch(table.value Like 0, 1)AS zero  
     from table 
     group by pollid 
0
select z.pollid,z.ones,s.zeros 
    from (select a.pollid,count(a.value) as ones from test a 
    where a.value=1 
group by a.pollid) z 
left join 
    (select b.pollid,count(b.value) as zeros from test b 
    where b.value=0 group by b.pollid) s  
on z.pollid=s.pollid; 
1

Это кратчайший возможный ответ в MySQL, поскольку он поддерживает логическую арифметику.

SELECT PollID, 
     SUM(value = 1) AS `One`, 
     SUM(value = 0) AS `Zero` 
FROM tableName 
GROUP BY PollID 
Смежные вопросы