首页 > 解决方案 > 雪花组的问题(按条件)

问题描述

SELECT row_number() over (order by seq8(1))  as unique_id,
    ContractVersionId,
    Origin,
    LISTAGG(FIRSTSTATION , '|| ') within group (ORDER BY FIRSTSTATION) AS InterTransptAndCarrCode
    FROM LdCONTRACTMULTISEGMENT
    WHERE firstsegair1='AC' AND secondsegair1 <> 'AC'
    GROUP BY 1,2,SECONDSEGAIR1;

编辑:这是表创建

CREATE TABLE VIKRAMG.LDCONTRACTMULTISEGMENT 
( CONTRACTVERSIONID INTEGER, ORIGIN CHAR(3) , FIRSTSTATION CHAR(3) , FIRSTSEGAIR1 CHAR(3) , SECONDSTATION CHAR(3) , SECONDSEGAIR1 CHAR(3) , THIRDSTATION CHAR(3) , THIRDSEGAIR1 CHAR(3) ) ;

收到此错误。

窗口函数 [ROW_NUMBER() OVER (ORDER BY SEQ8(1) ASC NULLS LAST)] 出现在 SELECT、QUALIFY 和 ORDER BY 子句之外。

标签: snowflake-cloud-data-platform

解决方案


您的查询包含GROUP BY两次,要分组的列列表包含所选列列表中不存在的列,并且大部分查询已被注释掉。

以下查询修复了这 3 个问题并且可能有效,但如果没有样本数据,我们无法知道。

SELECT row_number() over (order by seq8(1)) as unique_id, ContractVersionId, Origin FROM """ + self.params.TD_STG_DB_NM + """.LdCONTRACTMULTISEGMENT WHERE firstsegair1='AC' AND secondsegair1 <> 'AC' GROUP BY 1,2,3

推荐阅读