CREATE TABLE bugs (
type varchar(2),
flag varchar(1),
mins varchar(2)
);
INSERT INTO bugs(type, flag, mins) values
('10','0','0'),
('10','1','5'),
('20','0','0'),
('20','1','5'),
('20','2','10'),
('30','0','10'),
('30','0','20'),
('30','1','40');
select
type,
count(type) as type_cnt,
SUM(CASE WHEN flag='0' THEN 1 ELSE 0 END) as f_cnt_type0,
SUM(CASE WHEN flag='1' THEN 1 ELSE 0 END) as f_cnt_type1,
SUM(CASE WHEN flag='2' THEN 1 ELSE 0 END) as f_cnt_type2,
SUM(CASE WHEN CAST(mins AS UNSIGNED) = 0 THEN 1 ELSE 0 END) as time_00,
SUM(CASE WHEN CAST(mins AS UNSIGNED) > 0 and CAST(mins AS UNSIGNED) <= 15 THEN 1 ELSE 0 END) as time_00_15,
SUM(CASE WHEN CAST(mins AS UNSIGNED) > 15 and CAST(mins AS UNSIGNED) <= 30 THEN 1 ELSE 0 END) as time_15_30
from bugs
group by type
SQL:sqlfiddle
貌似简单'集团BY'像这样的列:'SUM(CASE WHEN ... THEN ... ELSE 0 END)'。在MySQL中,也可以使用'COUNT(布尔表达式)'。 – 2013-03-17 01:56:22
@Mitch小麦:不知道为什么这被标记下来。我做了米奇。我可以做几个查询类型,计数('列')和按类型分组,但不知道如何做其他人的一个语句或嵌套语句。如果您想提供帮助,非常感谢。 – luis 2013-03-17 02:46:22
@ PM 77-1:谢谢。这就是诀窍! – luis 2013-03-17 03:58:24