sql - 在 PostgresSQL 中透视数据
问题描述
我有一张桌子
开始日期 | 序号 | 数数 | Emp_id |
---|---|---|---|
老的 | 0 | 1 | 1 |
2020-12-07 | 1 | 15 | 1 |
更多的 | 2 | 4 | 1 |
全部的 | 3 | 20 | 1 |
老的 | 0 | 15 | 2 |
2020-12-07 | 1 | 20 | 2 |
更多的 | 2 | 5 | 2 |
全部的 | 3 | 40 | 2 |
我需要输出为
Emp_id | 老的 | 2020-12-07 | 更多的 | 全部的 |
---|---|---|---|---|
1 | 1 | 15 | 4 | 20 |
2 | 15 | 20 | 5 | 40 |
有人可以给我一些想法或指出如何实现所需输出的方向吗?
解决方案
对于固定的值列表,您可以使用条件聚合:
select emp_id
max(count) filter(where start_date = 'old' ) as val_old,
max(count) filter(where start_date = '2020-12-07') as val_2020_12_07,
max(count) filter(where start_date = 'More' ) as val_more,
max(count) filter(where start_date = 'Total' ) as val_total
from mytable
group by emp_id
推荐阅读
- python - 如何间隔 2 分钟运行 100 个 python 文件?
- python - Python 局部变量范围
- c - 为什么将指向字符串值的指针更改为另一个字符串有效,但不能直接更改字符串的值?
- php - 在 Mac Catalina 上安装 V8JS
- swift - Swift 构建中的类型检查规则?
- git - 在不克隆存储库的情况下获取 .git 目录
- server - 使用 ESP 01 AT 命令向服务器发送数据的正确方法
- unit-testing - 我应该如何处理使用 runtime.GOOS 的 Go 函数的测试?
- python - Flask 登录“current_user”会话已过期
- react-native - DatePicker 在 iOS react-native 0.60.6 中的工作非常奇怪