【发布时间】:2020-07-19 18:49:09
【问题描述】:
我在 SQL 中有如下数据表 (dt):
ID state_id act rd_1 rd_2 rd_3 rd_4 rd_5
11 abc,13.3 1 1. 31 17.4 32.4 0.4
11 afd,23.2 4 1. 42.1 1.3 31.9 0.39
11 dfw,154 7 0. 0.3 4.3 8.21 163.3
12 vab,64.5 8 1. 32.3 11 2.1 21.3
12 avf,542 2 0. 2.12 28.2 8.12 57.5
12 vjg,35 4 1. 5.7 8.64 7.46 0.25
13 vaw,424.2 4 1. 64.3 0.435 4.3 35.3
14 bda,243 1 0. 4.4 4.6 2.4 4.2
15 rbe,24.2 3 1. 43 53.5 4.4 8.5
我想为每一行计算从 rd_1 到 rd_5 的值的方差(它们是双精度值)。 ID 和 state_id 唯一标识一行。所需的输出如下所示:
ID state_id act rd_1 rd_2 rd_3 rd_4 rd_5. var_rd
11 abc,13.3 1 1. 31 17.4 32.4 0.4 192.6624
11 afd,23.2 4 1. 42.1 1.3 31.9 0.39 323.3181
11 dfw,154 7 0. 0.3 4.3 8.21 163.3 4109.9855
12 vab,64.5 8 1. 32.3 11 2.1 21.3 141.3463
13 vaw,424.2 4 1. 64.3 0.435 4.3 35.3 636.2333
14 bda,243 1 0. 4.4 4.6 2.4 4.2 3.0496
15 rbe,24.2 3 1. 43 53.5 4.4 8.5 473.2456
我知道可以使用数据透视来展平数据,然后计算展平数据中列 (rd_value) 的方差。但是我使用的 SQL 不支持 Pivot 方法。我尝试使用 UNION,但它似乎与 user_id 混淆了。
【问题讨论】:
-
用您正在使用的数据库标记您的问题。另外,请向您解释您的意思是方差。
标签: sql data-manipulation calculated-columns variance