为什么 HAVING col > AVG(col) 不返回任何行?
Why is HAVING col > AVG(col) returning no rows?
此视图显示每个劫匪、他们入狱的年数、实施的抢劫次数和他们的总收入(21 行)。
然后我尝试创建另一个视图以进一步操作上面视图中的数据。我希望我的新视图仅显示 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
时,returns 没有行。谁能看到我的问题?干杯
也许这行得通:
CREATE VIEW ActiveRobbers3
AS
SELECT Nickname
FROM ActiveRobbers2,
(SELECT AVG(AVG_NoRobberies) as AVG_NoRobberies FROM ActiveRobbers2) as b
WHERE NoYears = 0
AND NoRobberies > b.AVG_NoRobberies
你的问题含糊不清。 table 的所有数据或与特定 "Nickname" 有关的数据的平均值 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
此视图显示每个劫匪、他们入狱的年数、实施的抢劫次数和他们的总收入(21 行)。
然后我尝试创建另一个视图以进一步操作上面视图中的数据。我希望我的新视图仅显示 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
时,returns 没有行。谁能看到我的问题?干杯
也许这行得通:
CREATE VIEW ActiveRobbers3
AS
SELECT Nickname
FROM ActiveRobbers2,
(SELECT AVG(AVG_NoRobberies) as AVG_NoRobberies FROM ActiveRobbers2) as b
WHERE NoYears = 0
AND NoRobberies > b.AVG_NoRobberies
你的问题含糊不清。 table 的所有数据或与特定 "Nickname" 有关的数据的平均值 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