Este error tiene mucho sentido. COUNT
es una función "agregada". Por lo tanto, debe indicarle por qué campo agregar, lo cual se hace con GROUP BY
cláusula.
El que probablemente tenga más sentido en su caso sería:
SELECT column_a, COUNT(*) FROM my_schema.my_table GROUP BY column_a;
Si solo usa el COUNT(*)
cláusula, está solicitando devolver el número completo de filas, en lugar de agregar por otra condición. Su búsqueda si GROUP BY
está implícito en ese caso, podría responderse con:"más o menos":si no especifica nada, es un poco como preguntar:"agrupar por nada", lo que significa que obtendrá un gran agregado, que es toda la tabla.
Como ejemplo, ejecutando:
SELECT COUNT(*) FROM table;
le mostrará el número de filas en esa tabla, mientras que:
SELECT col_a, COUNT(*) FROM table GROUP BY col_a;
le mostrará el número de filas por valor de col_a
. Algo como:
col_a | COUNT(*)
---------+----------------
value1 | 100
value2 | 10
value3 | 123
También debes tener en cuenta que el *
significa contar todo . Incluyendo NULL
¡s! Si desea contar una condición específica, debe usar COUNT(expression)
! Consulte los documentos sobre funciones agregadas
para más detalles sobre este tema.