¿Por qué no puede mezclar valores agregados y valores no agregados en un solo SELECT?
Sé que si tiene una función agregada en una instrucción SELECT, todos los demás valores en la declaración deben ser funciones agregadas o enumeradas en una cláusula GROUP BY. No entiendopor qu ese es el caso.
Si lo hago
SELECT Name, 'Jones' AS Surname FROM People
Yo obtengo
NAME SURNAME
Dave Jones
Susan Jones
Amy Jones
Entonces, el DBMS ha tomado un valor de cada fila y le ha agregado un valor único en el conjunto de resultados. Esta bien. Pero si eso funciona, ¿por qué no puedo hacer:
SELECT Name, COUNT(Name) AS Surname FROM People
Parece la misma idea, tome un valor de cada fila y agregue un solo valor. Pero en lugar de:
NAME SURNAME
Dave 3
Susan 3
Amy 3
Yo obtengo
ntentó ejecutar una consulta que no incluye la expresión especificada 'ContactName' como parte de una función agregada.
Sé que no está permitido, pero las dos circunstancias parecen tan similares que no entiendo por qué. ¿Es para hacer que el DBMS sea más fácil de implementar? Si alguien puede explicarme por qué no funciona como creo que debería, estaría muy agradecido.