Tengo una consulta de varias tablas, similar a este (versión simplificada)En mysql, ¿puedes dividir un alias por otro?
SELECT columns, count(table2.rev_id) As rev_count, sum(table2.rev_rating) As sum_rev_rating
FROM table1
LEFT JOIN table2
ON table1.dom_id = table2.rev_domain_from
WHERE dom_lastreview != 0 AND rev_status = 1
GROUP BY dom_url
ORDER BY sum_rev_rating/rev_count DESC
El problema está en la cláusula ORDER BY. Esto provoca un error de MySQL para mostrar, que es el siguiente:
Referencia 'sum_ calificación REV_' no está soportada (referencia a la función de grupo)
Intenté hacer sum_rev_rating/rev_count COMO avg_rating, pero obtuve el mismo resultado. Supongo que no puedes hacer un alias, de un alias. ¡Tu método funcionó perfectamente! –
No puede usar un alias en otras expresiones en la lista de selección. Puede usar alias solo en las cláusulas GROUP BY, HAVING y ORDER BY. –