我尝试了不同的东西,但都没有成功。我有以下问题,如果有人可以帮助我,我将非常感激。
我将视图中的数据作为数十亿条记录获取,用于不同的衡量标准
A)
| 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)中形成第一列,而后两列将形成另一列。
有一种优雅的方式,可以轻松维护吗?完美的解决方案是,如果在A)和B)中引入另一项措施,则不需要进行修改,它会自动获得差异。
我知道如何在SqlServer和Postgres中完成这项工作,但在这里我错过了实验。
答案 0 :(得分:0)
我认为你应该使用map