mysql查看我的查询输出我需要不同的方式

mysql查看我的查询输出我需要不同的方式,mysql,Mysql,这是我的问题 Select Count(Case When campaign_pid != 0 Then 1 End) As Email, Count(Case When sms_pid != 0 Then 1 End) As Sms, Count(Case When survey_pid != 0 Then 1 End) As Survey From tablename 请帮助我这是我的查询输出 Email Sms Survey 21 1

这是我的问题

Select Count(Case When campaign_pid != 0 Then 1 End) 
   As Email, Count(Case When sms_pid != 0 Then 1 End) 
   As Sms, Count(Case When survey_pid != 0 Then 1 End) 
   As Survey From tablename
请帮助我这是我的查询输出

Email   Sms     Survey    
21      1       4
我需要这样的输出

 name    value  
 Email   21  
 Sms     1   
 Survey  4

请告诉我如何获得上面的optput

类似于以下内容的功能

SELECT 'Email' AS Name, Count(Case When campaign_pid != 0 Then 1 End) As Value From tablename
 UNION SELECT 'SMS', Count(Case When sms_pid != 0 Then 1 End)s  From tablename
 UNION SELECT 'Survey', Count(Case When survey_pid != 0 Then 1 End) From tablename
或者更好

SELECT 'Email' AS Name, COUNT() AS Value FROM tablename WHERE campaign_pid <> 0
 UNION SELECT 'SMS', COUNT() FROM tablename WHERE sms_pid <> 0
 UNION SELECT 'Survey', COUNT() FROM tablename  WHERE survey_pid <> 0
不是100%确定你的附加问题,也许这就是你想要的

SELECT COUNT(DISTINCT some_unique_col)
  FROM table_name
 WHERE campaign_pid <> 0
   AND sms_pid <> 0
   AND survey_pid <> 0
如果你能提供一些样本数据和预期结果,也许你想要的是总和而不是计数,这会有所帮助