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列,並做就可以了加盟,我必須再次計算它?這聽起來相當昂貴。