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       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/

相关文章:

c# - 为什么这些代码行没有按预期运行?

mysql - 查询执行时间太长?

mysql - 计算记录之间的时间?

MYSQL表结构全局空值

mysql - 无法在 Mac OSX 上启动 MySQL 客户端

MySQL 连接不同表的情况

使用 BOOL 列创建 TABLE 时出现 MySQL 错误

php - Laravel Eloquent 获取所有行及其各自的数据透视表行

mysql - 多边形内多边形的更好的表格布局是什么

mysql - OTRS SQL 框 "Executing OS Commands"