mysql中的Sum(IF)

mysql中的Sum(IF),mysql,count,sum,Mysql,Count,Sum,我可以在mysql中获得多个条件下的bug总数吗 我的要求是,我需要获得具有某些优先级的bugid的总和或计数,比如P1,超过特定时间,但是超出的计数应该从该特定优先级的总计数中计算出来 我的问题是:- select sum( IF(priority="P1",1,0)) P1, sum( IF(timediff(delta_ts,creation_ts) > "00:00:05",1,0))P1_exeeded, SUM( IF(priority="P2",1,0)) P2,

我可以在mysql中获得多个条件下的bug总数吗

我的要求是,我需要获得具有某些优先级的bugid的总和或计数,比如P1,超过特定时间,但是超出的计数应该从该特定优先级的总计数中计算出来

我的问题是:-

select 
sum(
 IF(priority="P1",1,0)) P1, 
sum(
 IF(timediff(delta_ts,creation_ts) > "00:00:05",1,0))P1_exeeded,
SUM(
 IF(priority="P2",1,0)) P2,
sum(
 IF(timediff(delta_ts,creation_ts) > "00:00:10",1,0))P2_exeeded,
SUM(
 IF(priority="P3",1,0)) P3count,
SUM(
 IF(priority="P4",1,0)) P4count,
SUM(
 IF(priority="P5",1,0)) P5count,
SUM(
 IF(priority="P6",1,0)) P6count,
SUM(
 IF(priority="P7",1,0)) P7count,
SUM(
 IF(priority="P8",1,0)) P8count 
from bugs 
where bugs.product_id=237 
and bugs.resolution='FIXED' 
and bugs.creation_ts >='2013-06-14 09:00:00' 
and bugs.creation_ts <= '2013-06-16 08:59:59' 
and bug_status="RESOLVED";
选择
总数(
如果(priority=“P1”,1,0))P1,
总数(
如果(timediff(delta,creation)>“00:00:05”,1,0)P1被排除,
总数(
如果(priority=“P2”,1,0))P2,
总数(
如果(timediff(delta,creation)>“00:00:10”,1,0))P2被删除,
总数(
如果(priority=“P3”,1,0))P3计数,
总数(
如果(priority=“P4”,1,0))P4计数,
总数(
如果(priority=“P5”,1,0))P5计数,
总数(
如果(priority=“P6”,1,0))P6计数,
总数(
如果(priority=“P7”,1,0))P7计数,
总数(
如果(priority=“P8”,1,0))P8计数
来自臭虫
其中bugs.product_id=237
和bug。分辨率='FIXED'
和bugs.creation>='2013-06-1409:00:00'
和bugs.creation_ts“00:00:05”,1,0)从P1 BugID的计数中获取


请帮助在mysql中使用sum(满足2个条件)

我得到了答案。谢谢你,切坦-

select 
sum(
 IF(priority="P1",1,0)) P1,
sum( 
 IF((timediff(delta_ts,creation_ts) > "00:02:00") && (priority="P1") ,1,0))P1_exeeded,
SUM(
 IF(priority="P2",1,0)) P2,sum( IF((timediff(delta_ts,creation_ts) > "00:01:00") && (priority="P2") ,1,0))P2_exeeded,
SUM(
 IF(priority="P3",1,0)) P3count,
SUM(
 IF(priority="P4",1,0)) P4count,
SUM(
 IF(priority="P5",1,0)) P5count,
SUM(
 IF(priority="P6",1,0)) P6count,
SUM(
 IF(priority="P7",1,0)) P7count,
SUM(
  IF(priority="P8",1,0)) P8count 
from bugs ....
where
.....
+------+------------+------+------------+---------+---------+---------+---------+---------+---------+ |P1 | P1 | P2 | P2 | P2 | P3计数| P4计数| P5计数| P6计数| P7计数| P8计数| +------+------------+------+------------+---------+---------+---------+---------+---------+---------+ | 7 | 1 | 6 | 1 | 5 | 1 | 0 | 0 | 0 | 0 | +------+------------+------+------------+---------+---------+---------+---------+---------+---------+
sum(如果((timediff(delta,creation)>“00:00:05”)和(&(priority=“P1”),1,0))P1被删除,谢谢Chetan,我会尝试:)Waww。。chetan:)谢谢SQL对缩进格式不严格,这意味着如果您直接复制并粘贴到SQL编辑器中,它将非常有用。如果你觉得没用,那就意味着你需要学习更多关于它的知识,我们有很好的标记语言,并且对各种编程语言都有特别的支持。如果您不知道如何利用这些东西来创建适合人们的内容(无需将其复制到特殊编辑器中)。。。因为你刚刚加入这个网站,那么你可能需要了解更多。我做的唯一一件事是:标记你所有的源代码,然后单击缩进4个空格的{}图标,这会导致“代码”格式,这也会保留你代码中已有的新行。正如你所说的,也许你认为有些事情你可能也想了解。
select 
sum(
 IF(priority="P1",1,0)) P1,
sum( 
 IF((timediff(delta_ts,creation_ts) > "00:02:00") && (priority="P1") ,1,0))P1_exeeded,
SUM(
 IF(priority="P2",1,0)) P2,sum( IF((timediff(delta_ts,creation_ts) > "00:01:00") && (priority="P2") ,1,0))P2_exeeded,
SUM(
 IF(priority="P3",1,0)) P3count,
SUM(
 IF(priority="P4",1,0)) P4count,
SUM(
 IF(priority="P5",1,0)) P5count,
SUM(
 IF(priority="P6",1,0)) P6count,
SUM(
 IF(priority="P7",1,0)) P7count,
SUM(
  IF(priority="P8",1,0)) P8count 
from bugs ....
where
.....
+------+------------+------+------------+---------+---------+---------+---------+---------+---------+ | P1 | P1_exeeded | P2 | P2_exeeded | P3count | P4count | P5count | P6count | P7count | P8count | +------+------------+------+------------+---------+---------+---------+---------+---------+---------+ | 7 | 1 | 6 | 1 | 5 | 1 | 0 | 0 | 0 | 0 | +------+------------+------+------------+---------+---------+---------+---------+---------+---------+
SELECT `customer xxx`,
cxType,
`Order Store`,
sum(if(category='xxxx',qty,0)), 
min(`order date`) as 'First Purchcase Date'
FROM table1
group by `customer xxx`;