gpt4 book ai didi

Mysql 使用 "as"进行更多计算

转载 作者:行者123 更新时间:2023-11-29 02:15:17 28 4
gpt4 key购买 nike

假设我有以下 SQL 语句:

SELECT
COUNT(UHAM.module_id) AS total,
COUNT(CASE WHEN UHAM.is_complete = 1
THEN 1
ELSE NULL END) AS complete,
(total / complete * 100) AS percentage,
AT.name
FROM user_has_academy_module UHAM
JOIN academy_team AT ON AT.id = UHAM.academy_team_id
WHERE academy_team_id IN (317, 305)
GROUP BY UHAM.academy_team_id;

如您所见,我使用了 totalcomplete 来尝试计算新值。然而,这不能像我的脚本所说的那样完成:unknown column total

所以我的问题是:有没有办法完成上述操作,或者我是否需要再次编写相同的 count 语句(使 sql 有点困惑)

最佳答案

用另一个选择包裹它:

SELECT t.*,
(total / complete * 100) AS percentage
FROM(
SELECT
COUNT(UHAM.module_id) AS total,
COUNT(CASE WHEN UHAM.is_complete = 1
THEN 1
ELSE NULL END) AS complete,
AT.name
FROM user_has_academy_module UHAM
JOIN academy_team AT ON AT.id = UHAM.academy_team_id
WHERE academy_team_id IN (317, 305)
GROUP BY UHAM.academy_team_id) t

您不能在创建别名的同一级别上使用别名,您要么必须再次复制整个表达式,要么用另一个选择将其包装起来,如上例所示。

关于Mysql 使用 "as"进行更多计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844506/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com