我的sql总和计数值

时间:2011-03-24 07:42:39

标签: mysql

Select Count(Case When an_user_plan.campaign_pid != 0 Then 1 End) As Email,
  Count(Case When an_user_plan.sms_pid != 0 Then 1 End) As Sms,
  Count(Case When an_user_plan.survey_pid != 0 Then 1 End) As Survey,
  sum(Email,Sms,Survey)as total
From an_user_plan 

这个sum(Email,Sms,Survey)as total有错误如何将这三个值相加 我希望总共增加三个计数值 怎么做请帮帮我

3 个答案:

答案 0 :(得分:1)

SELECT SUM(campaign_pid != 0 +
           sms_pid != 0 +
           survey_pid != 0) AS total, ...

答案 1 :(得分:0)

试试这个:

Select Count(Case When an_user_plan.campaign_pid != 0 Then 1 End) +
  Count(Case When an_user_plan.sms_pid != 0 Then 1 End) +
  Count(Case When an_user_plan.survey_pid != 0 Then 1 End) as total
From an_user_plan 

答案 2 :(得分:0)

虽然您没有GROUP BY子句,但您可以使用变量 -

SELECT @c1:=Count(...), @c2:=Count(...), @c1 + @c2 FROM table

否则你可以使用子查询 -

SELECT c1, c2, c1 + c2 FROM (
  SELECT Count(...) c1, Count(...) c2 FROM table) t