查询使用中间值
Query to use intermidiate Value
您好,我正在尝试编写查询以使用中间 o/p 。
我有一个 table,其中 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
您好,我正在尝试编写查询以使用中间 o/p 。
我有一个 table,其中 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