Использование функции отметки времени в GROUP BY

Я работаю с большим набором данных транзакций и хочу сгруппировать количество транзакций отдельных клиентов по месяцам. Я не могу использовать функцию отметки времени в GROUP BY и вернуть следующую ошибку:

  

BAD_QUERY (выражение STRFTIME_UTC_USEC ([DATESTART], '% b') в GROUP BY недопустимо)

Есть ли простой обходной путь для достижения этого или я должен построить таблицу календаря (которая может быть самым простым вариантом)?

12 голосов | спросил DWGKNZ 4 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 04 Sep 2012 15:15:26 +0400 2012, 15:15:26

2 ответа


0

Вы должны использовать псевдоним:

SELECT STRFTIME_UTC_USEC(DATESTART, '%b') as month, COUNT(TRANSACTION)
FROM datasetId.tableId
GROUP BY month
ответил Charles 4 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 04 Sep 2012 18:40:18 +0400 2012, 18:40:18
0

@Charles - это правильно, но кроме этого вы также можете группировать по номеру столбца.

SELECT STRFTIME_UTC_USEC(DATESTART, '%b') as month, COUNT(TRANSACTION) as count
FROM [datasetId.tableId]
GROUP BY 1
ORDER BY 2 DESC
ответил j.davies 15 MarpmTue, 15 Mar 2016 21:12:59 +03002016-03-15T21:12:59+03:0009 2016, 21:12:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132