【问题标题】:1 Article has many posts SQL Group By Error1 文章有很多帖子 SQL Group By Error
【发布时间】:2015-12-28 23:06:59
【问题描述】:

这是包含在此查询语句中的 3 个表

  • 帖子:Id,Title,Post,RatingId,Img
  • 评分:Id、UserId、PostId

1 篇文章有多个评分,我们希望将评分与文章本身的所有信息一起计算。

这就是我所拥有的:

SELECT p.*, Count(r.PostId)
FROM Posts p INNER JOIN
     Rating r
     on p.RatingId = r.PostId

然后我得到这个错误:

消息 8120,级别 16,状态 1,第 1 行列“Posts.Id”在 选择列表,因为它不包含在任一聚合中 函数或 GROUP BY 子句。

但我不想使用分组依据,我想返回文章信息以及该文章的评分计数列。

谢谢!

【问题讨论】:

  • 你的数据结构对我来说没有多大意义。您能否编辑您的问题并提供示例数据和所需的结果。

标签: sql sql-server


【解决方案1】:

可能最简单的方法是使用子查询:

SELECT p.*,
       (SELECT Count(r.PostId)
        FROM rating r
        WHERE p.RatingId = r.PostId
       )
FROM Posts p ;

您的查询存在问题,因为它使用了聚合函数 COUNT() 和其他列 (p.*),并且没有 GROUP BY 子句。

另外,您的JOIN 条件看起来很奇怪。我希望p.PostId = r.PostIdp.Id = r.PostId

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 2011-10-21
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多