【发布时间】:2026-01-21 18:25:01
【问题描述】:
这是我的查询:
SELECT
artist.firstname
,artist.lastname
,AvgRating = AVG(painting.rating) OVER ( PARTITION BY painting.artistid )
,MaxRating = MAX(painting.rating) OVER ( PARTITION BY painting.artistid )
,MinRating = MIN(painting.rating) OVER ( PARTITION BY painting.artistid )
FROM
painting
JOIN
artist ON painting.artistid = artist.id
GROUP BY
artist.firstname
,artist.lastname
HAVING COUNT(painting.title) > 2
但我收到此错误:
列“painting.ArtistId”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。行:1
【问题讨论】:
-
你能展示样本数据和预期结果吗
-
这是问题提示:显示每个艺术家的名字和姓氏、他们的平均评分(如 AvgRating)以及他们的最低和最高评分(如 MinRating 和 MaxRating)。只包括那些有两幅以上画作的艺术家。
标签: sql sql-server group-by aggregate-functions