2012-09-04 9 views
12

Estoy trabajando con un gran conjunto de datos de transacción y me gustaría agrupar un recuento de transacciones de clientes individuales por mes. Soy incapaz de utilizar la función de marca de tiempo en el GROUP BY y devolver el siguiente error:Uso de una función de marca de tiempo en un GRUPO POR

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

¿Hay una solución simple para lograr esto o debería construir una tabla de calendario (que puede ser la opción más sencilla)?

Respuesta

20

usted tiene que utilizar un alias:

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

@Charles es correcta, pero como un aparte También puede agrupar por número de columna.

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