首先,如果“别名”用词错误,请纠正我。我正在谈论将列重命名为AS
操作员。
所以我尝试计算这样的平均值:
SELECT
users.username AS player_name,
COUNT(*) AS total_games,
SUM(games.points) AS total_points,
(total_points / total_games) AS average_points
FROM games,
INNER JOIN users
ON games.player_id = users.id
GROUP BY games.player_id
(查询可能是错误的,这只是一个简单的例子)
在此查询中,该行
(total_points / total_games) AS average_points
给出错误:unknown column total_points
那么我该如何解决这个问题以继续使用别名,而不是这样写:
(SUM(games.points) / COUNT(*) ) AS average_points
谢谢你的帮助 !
不幸的是,您不能以这种方式使用列别名。它们仅可用after the SELECT
语句已处理。但是,您可以在子查询或公用表表达式 (CTE) 中执行此操作。这是简单的子查询:
SELECT player_name,
total_games,
total_points,
(total_points / total_games) AS average_points
FROM
(SELECT
users.username AS player_name,
COUNT(*) AS total_games,
SUM(games.points) AS total_points,
FROM games,
INNER JOIN users
ON games.player_id = users.id
GROUP BY games.player_id) as InnerQuery
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)