【发布时间】:2022-01-19 15:03:26
【问题描述】:
我正在使用 Postgresql 并且有这个表:
| device_id | date | variable_name | pulses |
|---|---|---|---|
| 1 | 2021-03-29 | height | 10 |
| 1 | 2021-03-29 | speed | 20 |
| 1 | 2021-03-30 | height | 30 |
| 1 | 2021-03-30 | temperature | 40 |
| 2 | 2021-03-29 | height | 50 |
| 2 | 2021-03-29 | acceleration | 60 |
| 2 | 2021-03-29 | distance | 70 |
并且想查询所以我按设备ID和日期分组,并按变量名创建列,所以预期的表是:
| device_id | date | height | speed | temperature | acceleration | distance |
|---|---|---|---|---|---|---|
| 1 | 2021-03-29 | 10 | 20 | 0 | 0 | 0 |
| 1 | 2021-03-30 | 30 | 0 | 40 | 0 | 0 |
| 2 | 2021-03-29 | 50 | 0 | 0 | 60 | 70 |
知道怎么做吗?
【问题讨论】:
-
如果稍后添加颜色变量名会发生什么?忽略,还是自动在结果中添加颜色列?
-
忽略,否则我将不得不手动将新的 variable_name 添加为另一列
-
你可以使用
case表达式来做条件聚合。
标签: sql postgresql group-by