Группа google bigquery SQL по агрегатной функции

В стандартном SQL для больших запросов я получаю сообщение об ошибке:

"Ошибка: столбец 7 содержит функцию агрегирования, которая не разрешена в GROUP BY в [17:22]

где столбец 7 определен в разделе select следующим образом: -

СЛУЧАЙ, КОГДА MIN (transaction_dttm) = transaction_dttm THEN 'NEW' ELSE 'EXISTING' END AS Fcquisition_Flag

Обратите внимание, что transaction_date - это отметка времени.

Любые предлагаемые решения приветствуются.

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

Gordon Linoff 16.07.2018 13:08

Я не вижу ничего плохого в вашем выражении CASE. Вы должны опубликовать полный запрос.

Tim Biegeleisen 16.07.2018 13:10
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
1 589
1

Ответы 1

Возможно, вам просто нужна оконная функция в подзапросе:

SELECT . . .
FROM (SELECT . . . ,
             (CASE WHEN transaction_dttm = MIN(transaction_dttm) OVER (PARTITION BY ?)
                   THEN 'NEW' ELSE 'EXISTING'
              END) AS Fcquisition_Flag
      FROM . . . 
     ) t
GROUP BY 1, 2, 3, 4, 5, 6, 7

Непонятно, что вы хотите от PARTITION BY.

Спасибо Гордону и Тиму.

Sid 16.07.2018 13:25

Запрос, который я пытаюсь отправить, выглядит следующим образом:

Sid 16.07.2018 13:25

SELECT DATE (transaction_date) AS trans_date, TRIM (CONCAT (comp_quarter, '', comp_year)) AS comp_year, CASE WHEN partners NOT IN ('Nok') THEN 'Not_Nok' ELSE 'Nok' END AS Partner_Flag, CASE WHEN MIN (transaction_date ) = transaction_dttm THEN 'NEW' ELSE 'EXISTING' END AS Acquisition_Flag, COUNT (DISTINCT sids) AS No_Subs, COUNT (CASE WHEN se = 'P' THEN 1 ELSE 0 END) AS sp_count FROM mytable WHERE prod IN ('SSDPmed') И ДАТА (transaction_dttm) = '2018-07-01' И spf = 1 GROUP BY 1,2,3,4

Sid 16.07.2018 14:50

это упрощенный запрос - без СЛУЧАЯ, КОГДА СОЗДАЕТ ФЛАГ ПРИОБРЕТЕНИЯ, он работает нормально ..... но когда я включаю его, я получаю указанную выше ошибку

Sid 16.07.2018 14:52

Другие вопросы по теме