首页 > 其他 > 详细

多行的统计数据汇总为单行

时间:2021-05-07 14:39:05      阅读:13      评论:0      收藏:0      [点我收藏+]

-- 文章表、用户行为表(文章Id-Uid-行为类型)

SELECT t0.Id,t1.n AS FavouriteNum, t2.n AS LikeNum FROM article AS t0
LEFT JOIN ( SELECT COUNT(1) AS n,ArticleId FROM article_user_behavior WHERE BehaviorType=1 GROUP BY ArticleId) AS t1
ON t0.Id=t1.ArticleId
LEFT JOIN ( SELECT COUNT(1) AS n,ArticleId FROM article_user_behavior WHERE BehaviorType=2 GROUP BY ArticleId ) AS t2
ON t0.Id=t2.ArticleId;

-- 多行的统计数据汇总为单行

注意:JOIN时的ON连接条件


SELECT Id FROM (

SELECT t0.Id,IF(t1.n IS NULL,0,t1.n) AS FavouriteNum,IF(t2.n IS NULL,0,t2.n) AS LikeNum FROM article_content AS t0
LEFT JOIN ( SELECT COUNT(1) AS n,ArticleId FROM article_user_behavior WHERE BehaviorType=1 ) AS t1
ON t0.Id=t1.ArticleId
LEFT JOIN ( SELECT COUNT(1) AS n,ArticleId FROM article_user_behavior WHERE BehaviorType=2 ) AS t2
ON t0.Id=t2.ArticleId

) AS ta ORDER BY FavouriteNum*10+LikeNum*20 DESC LIMIT 4

 

多行的统计数据汇总为单行

原文:https://www.cnblogs.com/rsapaper/p/14738617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!