0

我有一个 Redshift 表,其中包含一个名为“Test”的 VARCHAR 列和几个浮点列。“测试”列具有唯一值,其中之一是“控制”,其他不是硬编码。

表格有约 10 行(非静态)和约 10 列。

我需要生成 Looker 报告,该报告将显示原始数据以及“控制”和其他测试中相应浮点列之间的差异。输入示例:

    Test | Metric_1 | Metric_2
  ---------------------------- 
  Control|    10     | 100
  A      |    12     | 120
  B      |    8      | 80

理想的报告:

         | Control | A  | A-Control | B | B-Control
         |---------|----|-----------|---|-----------
Metric_1 | 10      | 12 |    2      | 8 | -2
Metric_2 | 100     | 120|    20     | 80| -20

为了用“控制”计算每一行的差异,我试过:

SELECT T.test, 
T.metric_1 - Control.metric_1 AS DIFF1,
T.metric_2 - Control.metric_2 AS DIFF2,
...
FROM T, (SELECT * FROM T WHERE test='Control') AS Control

我可以在 Looker 中完成部分工作(它可以转置),在 SQL 中完成部分工作,但仍然无法弄清楚如何构建此报告。

4

1 回答 1

0

您可以转置测试维度,并能够构建其中的一部分:

         | Control | A  | B |
         |---------|----|---|
Metric_1 | 10      | 12 | 8 |
Metric_2 | 100     | 120| 80|

然后使用表格计算在此结果之上进行操作。您可以使用函数 pivot_where() 或 pivot_index()。例如,pivot_where(test = 'A', metric) - pivot_where(test = 'Control', metric)

于 2020-05-20T13:24:17.247 回答