Hola Hernán , espero que estés muy bien.
El alias definido en la expresión CASE no puede utilizarse directamente en la cláusula GROUP BY en la misma consulta SQL. En SQL, la cláusula GROUP BY se utiliza para agrupar filas en función de las columnas especificadas en la consulta original. Los alias definidos en la cláusula SELECT, como el alias "PRECIO", no son reconocidos en la cláusula GROUP BY, ya que la fase de agrupación se produce antes de la fase de selección en una consulta SQL.
Por lo tanto, en el contexto de la agrupación, debes usar la expresión CASE completa como se muestra en tu consulta:
GROUP BY ENVASE, CASE WHEN PRECIO_DE_LISTA >= 12 THEN 'COSTOSO' WHEN PRECIO_DE_LISTA >= 5 AND PRECIO_DE_LISTA < 12 THEN 'ASEQUIBLE' ELSE 'BARATO' END
El alias "PRECIO" solo estaría disponible en la lista de selección, en cláusulas como ORDER BY o HAVING, pero no en GROUP BY. Debes repetir la expresión CASE completa en la cláusula GROUP BY para agrupar correctamente los datos según los criterios definidos en esa expresión.
Un saludo.
Si este post te ayudó, por favor,
marca como solucionado ✓. Continúa con tus estudios