En otras palabras, este error le dice que SQL Server no sabe cuál B
para seleccionar del grupo.
O desea seleccionar un valor específico (por ejemplo, el MIN
, SUM
o AVG
) en cuyo caso usaría la función agregada adecuada, o desea seleccionar cada valor como una nueva fila (es decir, incluir B
en el GROUP BY
lista de campos).
Considere los siguientes datos:
ID A B 1 1 13 1 1 79 1 2 13 1 2 13 1 2 42
La consulta
SELECT A, COUNT(B) AS T1
FROM T2
GROUP BY A
devolvería:
A T1 1 2 2 3
Esto es bueno y fabuloso.
Sin embargo, considere la siguiente consulta (ilegal), que produciría este error:
SELECT A, COUNT(B) AS T1, B
FROM T2
GROUP BY A
Y su conjunto de datos devuelto que ilustra el problema:
A T1 B 1 2 13? 79? Both 13 and 79 as separate rows? (13+79=92)? ...? 2 3 13? 42? ...?
Sin embargo, las siguientes dos consultas aclaran esto y no causarán el error:
-
Usando un agregado
SELECT A, COUNT(B) AS T1, SUM(B) AS B FROM T2 GROUP BY A
devolvería:
A T1 B 1 2 92 2 3 68
-
Agregando la columna al
GROUP BY
listaSELECT A, COUNT(B) AS T1, B FROM T2 GROUP BY A, B
devolvería:
A T1 B 1 1 13 1 1 79 2 2 13 2 1 42