【问题标题】:SQL Count within a Select选择中的 SQL 计数
【发布时间】:2012-07-05 20:08:46
【问题描述】:

我想显示照片库以及每张照片的评分次数。

这是我的简单查询,但不确定如何从 Ratings 表中获取计数。

SELECT
   Photo.photoID
  ,Photo.photoName
  ,Member.memberID
  ,Member.memberFName
  ,Rating.ratingID
FROM
  Photo
INNER JOIN Member ON Photo.memberID = Member.memberID
LEFT OUTER JOIN Rating ON Photo.photoID = Rating.photoID
ORDER BY Photo.photoID DESC

每次有人单击“星级”按钮时,都会在“评级”表中插入一条新记录。我只允许对一张照片进行 100 次评分,因此我想在用户浏览图库时显示一张照片的评分次数(即 57/100)。

感谢您的帮助!

【问题讨论】:

    标签: sql count


    【解决方案1】:
    select p.photoID,
        p.photoName,
        m.memberID,
        m.memberFName,
        coalesce(rc.Count, 0) as RatingCount
    from Photo p
    inner join Member m on p.memberID = m.memberID
    left outer join (
        select photoID, count(*) as Count
        from Rating
        group by photoID
    ) rc on p.photoID = rc.photoID
    order by p.photoID desc
    

    【讨论】:

      【解决方案2】:

      您可以将 count 函数与 group by 语句一起使用来获取评分计数。

      select p.photoID,
      p.photoName,
      m.memberID,
      m.memberFName,
      count(r.RatingID) as RatingCount
      from Photo p
      inner join Member m on p.memberID = m.memberID
      left outer join Rating r on p.photoID = r.photoID
      group by p.photoID, p.photoName, m.memberID, m.memberFName
      

      【讨论】:

      • 谢谢你们! COALESCE - 这对我来说是一个新的!
      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 2021-09-16
      • 2010-10-30
      相关资源
      最近更新 更多