2012-09-04 9 views
12

Ich arbeite mit einem großen Transaktionsdatensatz und möchte eine Anzahl von einzelnen Kundentransaktionen nach Monat gruppieren. Ich bin nicht in der Lage, die Zeitstempel-Funktion in den GROUP BY und gibt die folgenden Fehler zu verwenden:Verwendung einer Zeitstempelfunktion in einer GROUP BY

BAD_QUERY (expression STRFTIME_UTC_USEC([DATESTART], '%b') in GROUP BY is invalid)

Gibt es eine einfache Abhilfe dies zu erreichen, oder soll ich eine Kalender-Tabelle erstellen (das ist die einfachste Möglichkeit sein kann)?

Antwort

20

Sie haben einen Aliasnamen verwenden:

SELECT STRFTIME_UTC_USEC(DATESTART, '%b') as month, COUNT(TRANSACTION) 
FROM datasetId.tableId 
GROUP BY month 
3

@Charles korrekt ist, aber als beiseite Sie können auch Gruppe von Spaltennummer.

SELECT STRFTIME_UTC_USEC(DATESTART, '%b') as month, COUNT(TRANSACTION) as count 
FROM [datasetId.tableId] 
GROUP BY 1 
ORDER BY 2 DESC