【问题标题】:Get total sum of video comments for each video获取每个视频的视频评论总数
【发布时间】:2020-04-13 00:43:45
【问题描述】:

我有一个餐桌视频

videoId | channelId | commentCount
a       | 1         | 5
b       | 1         | 3
c       | 2         | 1

还有一个表频道。 video.channelId 映射到 channel.Id

Id
1
2
3

对于每个 videoId,我需要该频道的评论计数和所有评论计数的总和。

所以最终结果应该是:

videoId | channelId | commentCount | commentCount_sum
a       | 1         | 5            | 8
b       | 1         | 3            | 8
c       | 2         | 1            | 1

到目前为止我的代码:

SELECT v.videoId, v.channelId, v.commentCount, SUM(v.commentCount) commentCount_sum
FROM videos v
JOIN channels c
ON c.Id = v.channelId
GROUP BY v.videoId

但我没有得到每个 videoId 的正确 commentCount_sum - commentCount_sum 与 commentCount 相同?

【问题讨论】:

    标签: sql sqlite join sum


    【解决方案1】:

    SQLite 已经支持窗口函数一年多了,这似乎是你想要的:

    select v.*,
           sum(v.commentCount) over (partition by v.channel_id) as commentCount_sum
    from videos v;
    

    对于您的问题,无需joinchannels。但是,如果需要,您可以将其添加到查询中。

    【讨论】:

    • 这假定 OP 的 SQLite 版本是最新的并且支持分析函数。
    • 我的版本是最新的。您的代码有效,非常感谢。我将阅读有关窗口函数的信息,以便更好地理解您的代码。
    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2017-12-11
    • 2017-08-13
    • 2013-11-21
    • 2022-12-28
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多