【发布时间】:2018-05-28 11:01:42
【问题描述】:
我尝试了不同的方法,但都没有成功。我有以下问题,如果有人可以帮助我,将不胜感激。
我从一个视图中获取数十亿条记录的数据,用于不同的度量
一)
| s_c_m1 | s_c_m2 | s_c_m3 | s_c_m4 | s_p_m1 | s_p_m2 | s_p_m3 | s_p_m4 |
|--------+--------+--------+--------+--------+--------+--------+--------|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|--------+--------+--------+--------+--------+--------+--------+--------|
然后我需要按每个度量对其进行汇总。这么长这么好。我想通了。
B)
| s_c_m1 | s_c_m2 | s_c_m3 | s_c_m4 | s_p_m1 | s_p_m2 | s_p_m3 | s_p_m4 |
|--------+--------+--------+--------+--------+--------+--------+--------|
| 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 |
|--------+--------+--------+--------+--------+--------+--------+--------|
那我需要得到如下形式的数据。我需要把它变成一个键值形式。
C)
| measure | c | p |
|---------+----+----|
| m1 | 3 | 15 |
| m2 | 6 | 18 |
| m3 | 9 | 21 |
| m4 | 12 | 24 |
|---------+----+----|
B) 的前 4 列将在 C) 中形成第一列,后 4 列将形成另一列。
有没有一种优雅的方式,可以轻松维护?完美的解决方案是,如果在 A) 和 B) 中引入另一种措施,则无需修改,它会自动获取差异。
我知道如何在 SqlServer 和 Postgres 中完成这项工作,但在这里我错过了经验。
【问题讨论】: