我有这样的SQL代码:
SELECT
TB_DataProperti.*,
TBL_Rating.ISNULL(AVG(Rating), 0) AverageRating
FROM
TB_DataProperti
INNER JOIN
TBL_Rating ON TB_DataProperti.Kode_Properti = TBL_Rating.Kode_Properti
GROUP BY
TB_DataProperti.JudulListing
ORDER BY
AverageRating DESC
我收到此错误:
Msg 8120,Level 16,State 1,Line 3
列'TB_DataProperti.Kode_Properti'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
我只想使用*
选择所有数据列,因为我有很多列
答案 0 :(得分:0)
问题是你正在尝试在另一个表上使用一个表和group by的聚合函数。规则是如果你使用聚合函数和另一个列然后该列应该在group by中使用。请尝试这个我希望这是是有用的。
SELECT
TB_DataProperti.*,
ISNULL(AVG(TBL_Rating.Rating), 0) over (partition by TBL_Rating.Kode_Properti) as AverageRating
FROM
TB_DataProperti
INNER JOIN
TBL_Rating ON TB_DataProperti.Kode_Properti = TBL_Rating.Kode_Properti
ORDER BY
AverageRating DESC