sql - 如何在 postgreSQL 的一行中获取多个值?
问题描述
我在 postgreSQL9.4 中有数据库表名 emp_leave
|emp_name|leave_type|total_lday|
| Tame | PL | 3 |
| Tame | UL | 4 |
我想要像这样的查询结果
|emp_name|paid_leave|unpaid_leave|
| Tame | 3 | 4 |
解决方案
Postgresql 9.4 也有FILTER
做条件聚合的子句:
select emp_name,
max(total_lday) FILTER (where leave_type = 'PL') as paid_leave,
max(total_lday) FILTER (where leave_type = 'UL') as unpaid_leave
from emp_leave
group by emp_name
(ANSI SQL-2016,功能 T612,“高级 OLAP 操作”。)
推荐阅读
- javascript - 机器人发送反应消息而没有反应
- django - 将 Django+React 部署到 Heroku - Uncaught SyntaxError: Unexpected token '<'
- r - 绘制具有相同大小写变量 geom_line 的分隔变量
- java - 来自 executorService 接口的 ShutdownNow 没有关闭进程中的任务
- javascript - 从客户端获取 server.js 的变量
- reactjs - 使用 react-router-dom 单击链接后如何隐藏菜单
- dialogflow-es - 对话流可以变成一个 omnychat 工具吗?
- javascript - 重新排序时的Vue多维列表转换
- php - 关于使用php重定向页面的问题
- python - 从 pandas 列中的列表中删除元素