2
例如,对于一个表,如:选择行,最大的一列运行总量小于给定值
ID | col_a | col_b | col_c
=============================
1 |5.0 |7.0 |3
2 |3.0 |6.8 |5
我需要找到为col_a价值/ col_b为其上col_c运行总计小于给定值。
到目前为止,我有:
select MAX(running_total) as max FROM (select (col_a/col_b) as val, SUM(col_c)
OVER (ORDER BY value ROWS UNBOUNDED PRECEDING) as running_total FROM tableName)
WHERE running_total < 50;
这给了我最大的运行总量,但我还需要在那里达到这个running_total该行的VAL(为col_a/col_b)。
我正在使用Amazon Redshift进行此查询,这与mysql不同,不会让我将val放在外部select语句中,而无需在val上添加group by子句。我不能添加group by子句的原因,这会改变查询的整个语义。
我已经找到解决类似的问题 - Fetch the row which has the Max value for a column
天色这些解决方案建议,我们一起用相同的表,然后为列值匹配,但计算running_total列,并做就可以了加盟,我必须再次计算它?这听起来相当昂贵。