Mysql查询:计数列
大家好,我有一个技术问题,我有一张表,上面有这样的记录:Mysql查询:计数列,mysql,Mysql,大家好,我有一个技术问题,我有一张表,上面有这样的记录: DATE SIP DURATION TYPE 2017-02-22 670 9 NO ANSWER 2017-02-22 670 9 ANSWER 2017-02-22 670 9 ANSWER 2017-02-22 671 9 NO ANSWER SIP DURATION NOANSWER ANSWER 670 18
DATE SIP DURATION TYPE
2017-02-22 670 9 NO ANSWER
2017-02-22 670 9 ANSWER
2017-02-22 670 9 ANSWER
2017-02-22 671 9 NO ANSWER
SIP DURATION NOANSWER ANSWER
670 18 1 2
671 9 1 0
select
DISTINCT(SIP),
(select count(*) FROM table where TYPE="ANSWERED")
(select count(*) FROM table where TYPE="NO ANSWERED")
from table
我希望得到这样的结果:
DATE SIP DURATION TYPE
2017-02-22 670 9 NO ANSWER
2017-02-22 670 9 ANSWER
2017-02-22 670 9 ANSWER
2017-02-22 671 9 NO ANSWER
SIP DURATION NOANSWER ANSWER
670 18 1 2
671 9 1 0
select
DISTINCT(SIP),
(select count(*) FROM table where TYPE="ANSWERED")
(select count(*) FROM table where TYPE="NO ANSWERED")
from table
我将这样进行查询:
DATE SIP DURATION TYPE
2017-02-22 670 9 NO ANSWER
2017-02-22 670 9 ANSWER
2017-02-22 670 9 ANSWER
2017-02-22 671 9 NO ANSWER
SIP DURATION NOANSWER ANSWER
670 18 1 2
671 9 1 0
select
DISTINCT(SIP),
(select count(*) FROM table where TYPE="ANSWERED")
(select count(*) FROM table where TYPE="NO ANSWERED")
from table
但结果统计表上的所有记录,最好是分组使用
对不起,我是诺布:(
谢谢你的时间
马可在这种情况下,将
分组依据
与有条件的总和
和计数
一起使用会更容易,如下例所示:
SELECT
SIP,
SUM(CASE TYPE WHEN 'ANSWER' THEN DURATION ELSE 0 END) AS DURATION,
COUNT(CASE WHEN TYPE = 'NO ANSWER' THEN 1 ELSE NULL END) AS NOANSWER,
COUNT(CASE WHEN TYPE = 'ANSWER' THEN 1 ELSE NULL END) AS ANSWER
FROM table_name
GROUP BY SIP
演示: