查询使用中间值

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