gpt4 book ai didi

sql - 为什么 HAVING col > AVG(col) 不返回任何行?

转载 作者:行者123 更新时间:2023-11-29 14:19:59 24 4
gpt4 key购买 nike

此 View 显示了每个劫匪、他们入狱的年数、实现的抢劫次数以及他们的总收入(21 行)。

ActiveRobbers2 View

然后我尝试创建另一个 View 以进一步操作上面 View 中的数据。我希望我的新 View 仅显示 NoYears(入狱服刑)= 0 且 NoRobberies 大于平均抢劫次数的劫匪的昵称。

CREATE VIEW ActiveRobbers3
AS
SELECT Nickname
FROM ActiveRobbers2
WHERE NoYears = 0
GROUP BY Nickname, NoRobberies
HAVING NoRobberies > AVG(NoRobberies);

然而,当我尝试 SELECT * FROM ActiveRobbers3 时,这不会返回任何行。谁能看到我的问题?干杯

最佳答案

您的问题含糊不清。表的所​​有数据或与特定“昵称”相关的数据的 NoRobberies 平均值。

案例 1:NoRobberies 所有数据的平均值

CREATE VIEW ActiveRobbers3
AS
SELECT Nickname
FROM ActiveRobbers2
WHERE NoYears = 0
AND NoRobberies > (select AVG(NoRobberies) from ActiveRobbers2);

案例 2:NoRobberies 相应昵称“Nickname”的平均值

CREATE VIEW ActiveRobbers3
AS
SELECT Nickname,NoRobberies

FROM ActiveRobbers2
WHERE NoYears = 0
GROUP BY Nickname
Having NoRobberies > AVG(NoRobberies);

注意:仅当昵称至少有两行具有不同的 NoRobberies 时,case-2 才会提供数据。示例代码适用于 MySQL

关于sql - 为什么 HAVING col > AVG(col) 不返回任何行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164379/

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