Sql 计算列和行的平均值
下面是我的表格(Sql 计算列和行的平均值,sql,sql-server,average,rating,Sql,Sql Server,Average,Rating,下面是我的表格(tblreviewwrating),其中包含数据: rrFood rrService rrCleanliness rrAmbience rrBqtID rrCusID ------ --------- ------------- ---------- ------- ------- 3 4 2 1 1 1 5
tblreviewwrating
),其中包含数据:
rrFood rrService rrCleanliness rrAmbience rrBqtID rrCusID
------ --------- ------------- ---------- ------- -------
3 4 2 1 1 1
5 4 3 2 1 2
4 2 4 2 2 5
4 2 4 2 2 7
4 2 4 2 2 9
我试图计算每个独立宴会厅(rrBqtID
)的前四列(5分制)的平均值,这些列来自客户(rrCusID
):
我如何计算客户提供的每个宴会厅的四项服务的平均评分和平均评分的平均值
编辑:
我想在我的查询中应用以计算评级。如果您想要rrBqtID、rrCusID的平均值,您应该按rrFood、rrService、RRCLINITY、rrAmbience分组,但rrBqtID、rrCusID除外
SELECT rrBqtID, rrCusID,
ROUND(AVG(rrFood+rrService+rrCleanliness+rrAmbience),2) AS AverageRating
FROM tblReviewRating
GROUP BY rrBqtID, rrCusID
如果你想在其他信息附近看到avg,你应该使用join eg
SELECT A.rrFood,A.rrService,A.rrCleanliness,A.rrAmbience , T.AverageRating
FROM tblReviewRating A
INNER JOIN (
SELECT rrBqtID, rrCusID,
ROUND(AVG(rrFood+rrService+rrCleanliness+rrAmbience),2) AS AverageRating
FROM tblReviewRating
GROUP BY rrBqtID, rrCusID
) T ON T.rrBqtID = A.rrBqtID and T.rrCusID = A.rrCusID
如果您想要rrBqtID、rrCusID的平均值,您应该根据rrFood、rrService、RRCleanergy、rrAmbience进行分组,但rrBqtID、rrCusID除外
SELECT rrBqtID, rrCusID,
ROUND(AVG(rrFood+rrService+rrCleanliness+rrAmbience),2) AS AverageRating
FROM tblReviewRating
GROUP BY rrBqtID, rrCusID
如果你想在其他信息附近看到avg,你应该使用join eg
SELECT A.rrFood,A.rrService,A.rrCleanliness,A.rrAmbience , T.AverageRating
FROM tblReviewRating A
INNER JOIN (
SELECT rrBqtID, rrCusID,
ROUND(AVG(rrFood+rrService+rrCleanliness+rrAmbience),2) AS AverageRating
FROM tblReviewRating
GROUP BY rrBqtID, rrCusID
) T ON T.rrBqtID = A.rrBqtID and T.rrCusID = A.rrCusID
您不应按要聚合的列分组,而应按要按分组的列分组。因此,与按rrFood
、rrService
、rrcleanity
、rrAmbience
进行分组不同,您应该分别按rrBqtID
和rrCustID
进行分组
通过使用公式,您可以得到四列
的平均值
(第1列+第2列+第3列+第4列)/4
然后使用AVG
将其聚合:
select rrBqtID, rrCustID, AVG(AverageRating) as AverageRating
from
(SELECT rrBqtID, rrCustID, ROUND(rrFood+rrService+rrCleanliness+rrAmbience) / 4,2) AS AverageRating
FROM tblReviewRating) t
group by rrBqtID, rrCustID
您不应按要聚合的列分组,而应按要按分组的列分组。因此,与按rrFood
、rrService
、rrcleanity
、rrAmbience
进行分组不同,您应该分别按rrBqtID
和rrCustID
进行分组
通过使用公式,您可以得到四列
的平均值
(第1列+第2列+第3列+第4列)/4
然后使用AVG
将其聚合:
select rrBqtID, rrCustID, AVG(AverageRating) as AverageRating
from
(SELECT rrBqtID, rrCustID, ROUND(rrFood+rrService+rrCleanliness+rrAmbience) / 4,2) AS AverageRating
FROM tblReviewRating) t
group by rrBqtID, rrCustID
这可能会帮助您查看每个宴会厅的平均评分。希望这有帮助
SELECT rrBqtID, AVG(rrFood) AS AVGrrFood,AVG(rrService) AS AVGrrService,AVG(rrCleanliness) AS AVGrrCleanliness,AVG(rrAmbience) AS AVGrrAmbience,
ROUND(AVG((rrFood+rrService+rrCleanliness+rrAmbience)/4),2) AS AverageRating
FROM tblReviewRating
GROUP BY rrBqtID
这可能会帮助您查看每个宴会厅的平均评分。希望这有帮助
SELECT rrBqtID, AVG(rrFood) AS AVGrrFood,AVG(rrService) AS AVGrrService,AVG(rrCleanliness) AS AVGrrCleanliness,AVG(rrAmbience) AS AVGrrAmbience,
ROUND(AVG((rrFood+rrService+rrCleanliness+rrAmbience)/4),2) AS AverageRating
FROM tblReviewRating
GROUP BY rrBqtID
@阿里,我已经编辑了我的答案。你还看到错误吗?@Asif.Ali我已经编辑了我的答案。现在好点了吗?@Asif.Ali我已经编辑了我的答案。你还看到错误吗?@Asif.Ali我已经编辑了我的答案。现在好点了吗?我工作过,但是如何计算平均值的平均值
。试试分组汇总(rrBqtID),看看它是否是您所需要的。汇总在底部提供了额外的行;总体平均数。不是你想要的吗?我工作了,但是如何计算平均值的平均值
。试试分组汇总(rrBqtID),看看它是否是你需要的。汇总在底部提供了额外的行;总体平均数。不是你要找的吗?