You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对相同source_id的帖子点赞行数进行求和统计

解决相同source_id帖子点赞数求和的问题

嘿,这个需求很常见,咱们可以通过表关联+分组聚合轻松实现,我给你两种场景下的SQL方案,你可以根据实际需求选:

方案一:仅统计存在点赞记录的source_id

这种方式只会返回那些至少有一个帖子获得过点赞的source_id及其总点赞数:

SELECT 
    p.source_id,
    COUNT(l.id) AS total_likes
FROM 
    posts p
JOIN 
    likes l ON p.id = l.post_id
GROUP BY 
    p.source_id;

逻辑拆解:

  • 用JOIN把posts表和likes表通过post_id关联,让每个帖子的点赞记录和帖子本身对应起来
  • 用GROUP BY p.source_id把相同source_id的所有帖子归为一组
  • 用COUNT(l.id)统计每组内的点赞记录总数(选l.id而非*是为了避免关联时的空值干扰,统计更准确)

方案二:统计所有source_id(包括无点赞的)

如果需要把那些没有任何点赞的source_id也列出来,并且显示总点赞数为0,就用左连接(LEFT JOIN):

SELECT 
    p.source_id,
    COALESCE(COUNT(l.id), 0) AS total_likes
FROM 
    posts p
LEFT JOIN 
    likes l ON p.id = l.post_id
GROUP BY 
    p.source_id;

逻辑补充:

  • LEFT JOIN会保留posts表中所有的source_id,哪怕对应的帖子没有任何点赞记录
  • COALESCE()函数用来把COUNT()返回的NULL(无点赞时)替换成0,让结果更直观

针对你给出的样本数据的结果

用方案二查询的话,结果会是:

source_idtotal_likes
15
30
40

内容的提问来源于stack exchange,提问作者melvnberd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:07:47