您好,我正在尝试编写一个查询来使用中间输出。
我有一个以 PROD_DATE、PRICE 作为列的表,当我在 HANA 中给出以下查询时,查询将按预期执行。
select round(days_between( MIN(PROD_DATE) , MAX(PROD_DATE))/365) as yea,
SUM(PRICE) as totalRevenue from AAA;
如果我想使用之前计算的 yea
和 totalRevenue
列,如下所示:
select round(days_between( MIN(PROD_DATE) , MAX(PROD_DATE))/365) as yea,
SUM(PRICE) as totalRevenue, totalRevenue/yea as perc from AAA;
它给了我一个错误
ERROR is INVALID COLUMN NAME totalRevenue
最佳答案
正确。您不能在 SELECT
中再次使用在 SELECT
中分配的值。您可以重复表达式或使用子查询:
SELECT t.*, totalRevenue/yea
FROM (select round(days_between( MIN(PROD_DATE) , MAX(PROD_DATE))/365) as yea,
SUM(PRICE) as totalRevenue, totalRevenue/yea as perc
from AAA
) t
关于hana - 查询使用中间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441428/