Hi,
I think that the sql is not valid. Based on the order by documentation,
a column label cannot be used in an expression.
from https://www.postgresql.org/docs/11/queries-order.html
> Note that an output column name has to stand alone, that is, it
cannot be used in an expression.
Regards
s.
On 11.03.2019 06:30, Tatsuo Ishii wrote:
> I played with TPC-DS and found some of them can't be executed because
> of SQL errors and I am not sure why.
>
> For example with query 36:
>
> select
> sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin
> ,i_category
> ,i_class
> ,grouping(i_category)+grouping(i_class) as lochierarchy
> ,rank() over (
> partition by grouping(i_category)+grouping(i_class),
> case when grouping(i_class) = 0 then i_category end
> order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent
> from
> store_sales
> ,date_dim d1
> ,item
> ,store
> where
> d1.d_year = 2000
> and d1.d_date_sk = ss_sold_date_sk
> and i_item_sk = ss_item_sk
> and s_store_sk = ss_store_sk
> and s_state in ('TN','TN','TN','TN',
> 'TN','TN','TN','TN')
> group by rollup(i_category,i_class)
> order by
> lochierarchy desc
> ,case when lochierarchy = 0 then i_category end -- line 25 is here.
> ,rank_within_parent
> limit 100;
> psql:query_0.sql:1935: ERROR: column "lochierarchy" does not exist
> LINE 25: ,case when lochierarchy = 0 then i_category end
>
> I have follwed the instruction here.
> https://ankane.org/tpc-ds
>
> PostgreSQL is master branch HEAD. For me, the SQL above looks to be
> valid.
>
> Best regards,
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese:http://www.sraoss.co.jp
>