gpt4 book ai didi

mysql - 如何按计算的平均值进行分组

转载 作者:行者123 更新时间:2023-11-29 11:12:08 25 4
gpt4 key购买 nike

我目前有声明

SELECT ItemName, CONCAT(FirstName, ' ' , LastName) as AuthorName, Avg(DifRating) as 'AvgDifficuilty', Avg(EnjRating) as 'AvgEnjoyment', I.ItemID, A.AuthorID
FROM Rating R
INNER JOIN Item I ON R.ItemID = I.ItemID
INNER JOIN Author A ON I.AuthorID = A.AuthorID
INNER JOIN UserAccount UA ON A.UserID = UA.UserID
GROUP BY R.ItemID

但问题是,AvgDifficuilty 和 AvgEnjoyment 不是分开的,而是奇怪地将它们的数学结合在一起,但单独显示它们

因此,如果我的 DifRatings 值为 3 和 4,EnjRatings 值为 3 和 4,我会得到 Dif 的 3.5,这是正确的,但 Enj 的值为 4。

而且我必须按 ItemID 进行分组,所以我认为这个问题的解决方案是同时团购 2 个平均值,以便正确计算它们,但我似乎无法让它能够按平均数进行分组

我已经尝试过

GROUP BY R.ItemID, Avg(DifRating)

GROUP BY R.ItemID, AvgDifficuilty

但两者都给出错误,所以我不知道该怎么做。

TLDR:如何按平均数分组

如果我解释得不好,任何帮助将不胜感激,抱歉,我会尝试回答任何问题/填写空白,因为我不知道我想要的是否可能。

最佳答案

您应该首先计算 Rating 表中的平均值,然后再计算到其他表:

SELECT i.ItemName,
i.ItemID,
a.AuthorID,
CONCAT(a.FirstName, ' ', a.LastName) AS AuthorName,
t.AvgDifficulty,
t.AvgEnjoyment
FROM
(
SELECT ItemID,
AVG(DifRating) AS AvgDifficulty,
AVG(EnjRating) AS AvgEnjoyment
FROM Rating
GROUP BY ItemID
) t
INNER JOIN Item i
ON t.ItemID = i.ItemID
INNER JOIN Author a
ON i.AuthorID = a.AuthorID
INNER JOIN UserAccount ua
ON a.UserID = ua.UserID

关于mysql - 如何按计算的平均值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372389/

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