这是我的查询
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
也许您想要 SUM 而不是 COUNT,如果您可以提供一些示例数据和预期结果,这会有所帮助
关于mysql 查看我的查询输出我需要不同的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417579/