你可以在MySQL中将一个别名除以另一个别名吗?

9 mysql

我有一个多表查询,类似于此(简化版)

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
Run Code Online (Sandbox Code Playgroud)

问题出在该ORDER BY条款中.这会导致显示MySQL错误,如下所示:

不支持参考'sum_ rev_ rating'(参考组功能)

小智 14

您无法使用别名进行计算.这样做的一种方法是简单地创建另一个别名并按顺序排序.

SELECT columns, count(table2.rev_id) As rev_count, sum(table2.rev_rating) As sum_rev_rating, sum(table2.rev_rating)/count(table2.rev_id) as avg_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 avg_rev_rating DESC
Run Code Online (Sandbox Code Playgroud)