mysql - 查询行作为列(MySQL)

标签 mysql sql

我的表结构:

cust_id | action   | action_count
--------+----------+-------------
1       | Approved | 15
2       | Approved | 25
1       | Rejected | 6
2       | Pending  | 20
2       | Rejected | 7

我必须得到如下查询结果:

cust_id | Approved | Pending | Rejected
--------+----------+---------+---------
1       | 15       | 0       | 6
2       | 25       | 20      | 7

最佳答案

试试这个查询

select 
   cust_id, 
   max(if(action='Approved', action_count, 0)) as Approved,
   max(if(action='Rejected', action_count, 0)) as Rejected,
   max(if(action='Pending', action_count, 0)) as Pending
from 
   tbl
group by 
   cust_id

FIDDLE

| CUST_ID | APPROVED | REJECTED | PENDING |
-------------------------------------------
|       1 |       15 |        6 |       0 |
|       2 |       25 |        7 |      20 |

关于mysql - 查询行作为列(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16850214/

相关文章:

php - 未找到列 : 1054 Unknown column 'Array' in 'order clause' yii

php - 嵌套的php循环仅在连接到sql时运行一次

sql - 选择上次日期中按值分组的行之间共享的所有值

sql - Postgres : function accepting a hashmap or similar type as argument

MySQL 查找类时间冲突

java - 组合框链接到 MySQL 和 Jtextfield

php - 如何找到以下情况的联合查询

MySQL:计算每行不同值的出现次数

java - 检查数据库和表是否存在 : `java.sql.SQLException: No database selected`

c# - 使用 MySQL 数据库的 C# 数据网格控制