【发布时间】:2019-06-29 13:02:28
【问题描述】:
在 StandardSQL 中,是否可以在分组过程中对每一行运行操作?我不确定我是否问对了问题。这是一个例子。
假设我有 3 行这样的:
| move_id | item_id | quantity | value |
|---------|---------|----------|-------|
| 1 | 1 | 10 | 100 |
| 1 | 2 | 20 | 150 |
| 1 | 3 | 30 | 200 |
我现在想按 move_id 对表格进行分组,根据每行数量与最小数量的比例求和。
例如最小数量是 10,第 2 行的数量是 20,这意味着它的值应该在求和之前减半。第 3 行的数量为 30,这意味着它的值应该在求和之前减少到三分之一。
所以我的最终值列应该是 100 + (150 / 2) + (200 / 3) = 241.67。
我的结果应该是:
| move_id | quantity | value |
|---------|----------|--------|
| 1 | 10 | 241.67 |
查询应该是这样的:
SELECT ANY_VALUE(move_id) AS move_id, MIN(quantity) AS quantity, SUM([THIS IS MY QUESTION, WHAT GOES HERE?]) as value FROM table GROUP BY move_id;
这可能吗?
【问题讨论】:
标签: mysql google-bigquery