MySQL:在聚合函数中使用别名字段

mac*_*osh 4 mysql alias aggregate-functions

我有一个类似于这样的SQL语句:

SELECT COUNT(*) AS foo, SUM(foo) AS foo_sum FROM bar
Run Code Online (Sandbox Code Playgroud)

但MySQL不允许这样做,因为foo是别名.有没有人知道如何在SQL中实现这一点?

Bil*_*win 5

不,您不能在select-list或WHERE子句中使用别名.您只能在GROUP BY,HAVING或ORDER BY中使用别名.

您还可以使用子查询中定义的别名:

SELECT foo, SUM(foo) AS foo_sum
FROM (
  SELECT COUNT(*) AS foo
  FROM bar
);
Run Code Online (Sandbox Code Playgroud)