Проблема с группой снежинок по условию

#snowflake-cloud-data-platform

Вопрос:

 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() ПОВЕРХ (ПОРЯДОК ПО SEQ8(1) ASC ОБНУЛЯЕТСЯ ПОСЛЕДНИМ)] отображается вне предложений SELECT, QUALIFY и ORDER BY.

Комментарии:

1. Можете ли вы опубликовать, с какой проблемой вы столкнулись, с соответствующими образцами данных и шагами / деталями?

2. Получаю эту ошибку. Функция окна [ROW_NUMBER() ПОВЕРХ (ПОРЯДОК ПО СЕК8(1) ASC ОБНУЛЯЕТСЯ ПОСЛЕДНИМ)] отображается вне предложений SELECT, QUALIFY и ORDER BY.

3. Это таблица, которая нам нужна для создания снежинки. СОЗДАЙТЕ ТАБЛИЦУ ВИКРАМГ. LDCONTRACTMULTISEGMENT ( ЦЕЛОЕ ЧИСЛО CONTRACTVERSIONID, ИСХОДНЫЙ СИМВОЛ(3) , СИМВОЛ ПЕРВОЙ СТАНЦИИ(3) , СИМВОЛ ПЕРВОЙ ПАРЫ(3) , СИМВОЛ ВТОРОЙ ПАРЫ(3) , СИМВОЛ ВТОРОЙ ПАРЫ(3) , СИМВОЛ ТРЕТЬЕЙ ПАРЫ(3) , СИМВОЛ ТРЕТЬЕЙ ПАРЫ(3), СИМВОЛ ТРЕТЬЕЙ ПАРЫ (3)) ;

4. Я запустил ваше создание, и запрос работал, просто явно называя столбцы в ГРУППЕ BY. GROUP BY CONTRACTVERSIONID,ORIGIN,SECONDSEGAIR1; Я не видел той же ошибки, которую вы опубликовали.

Ответ №1:

Ваш запрос содержит 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
 

Комментарии:

1. Приведенный выше запрос не работает, не могли бы вы, пожалуйста, попробовать с приведенными выше комментариями