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

如何按postid统计点赞/点踩数量占比?现有SQL查询需优化

解决方案:单SQL语句统计点赞/点踩数量及占比

看起来你现在分两次查询点赞和点踩数据,还没法直接计算占比对吧?咱们可以用条件聚合写一条SQL就能一次性搞定每个post的点赞数、点踩数、总互动量,以及各自的占比。

直接上可用的SQL语句:

SELECT
    postid,
    COUNT(CASE WHEN type = 1 THEN 1 END) AS cntLikes,
    COUNT(CASE WHEN type = 0 THEN 1 END) AS cntUnlikes,
    COUNT(*) AS totalInteractions,
    ROUND(COUNT(CASE WHEN type = 1 THEN 1 END) * 100.0 / COUNT(*), 2) AS likePercentage,
    ROUND(COUNT(CASE WHEN type = 0 THEN 1 END) * 100.0 / COUNT(*), 2) AS unlikePercentage
FROM like_unlike
GROUP BY postid;

关键部分解释:

  • COUNT(CASE WHEN type = 1 THEN 1 END):只统计type=1(点赞)的记录,得到每个post的点赞总数cntLikes
  • COUNT(CASE WHEN type = 0 THEN 1 END):同理统计type=0(点踩)的记录数,得到cntUnlikes
  • COUNT(*):计算当前post的总互动次数(点赞+点踩的总和)
  • ROUND(..., 2):把占比结果四舍五入到两位小数,方便阅读;乘以100.0是为了避免整数除法导致的精度丢失,确保得到正确的百分比数值

针对你的测试数据,执行后会得到如下结果:

postidcntLikescntUnlikestotalInteractionslikePercentageunlikePercentage
2021366.6733.33
2112333.3366.67

这样你就不用再执行两次查询手动合并数据了,一条SQL就能拿到所有你需要的统计信息~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:02:38