【发布时间】:2017-03-20 03:00:04
【问题描述】:
使用如下表,需要将每行的val1 到val4 的mean 和median 分别计算为val_mean 和val_median。
+----+------+------+------+------+------+
| id | loc | val1 | val2 | val3 | val4 |
+----+------+------+------+------+------+
| 1 | loc1 | 10 | 190 | null | 20 |
| 2 | loc2 | 20 | null | 10 | 10 |
+----+------+------+------+------+------+
一般来说,我们如何处理跨列的聚合?
一种方法可能是将 val1 到 val4 拆分为 4 个不同的行,然后按 id、loc 聚合它们以找到均值/中值。所以上表需要先转换成下面的格式 - 我怎么能这样做?
+----+------+--------+
| id | loc | val |
+----+------+--------+
| 1 | loc1 | 10 |
| 1 | loc1 | 190 |
| 1 | loc1 | null |
| 1 | loc1 | 20 |
| 2 | loc2 | 20 |
| 2 | loc2 | null |
| 2 | loc2 | 10 |
| 2 | loc2 | 10 |
+----+------+--------+
【问题讨论】:
-
在计算中位数时,您希望如何处理
NULL值? -
NULL需要删除(忽略) -
你会一直有 4 个值列,还是以后会有更多?
-
实际数据有30个-V1到V30
标签: sql postgresql