您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当查询具有GROUP BY时,如何获得总计的百分比?

当查询具有GROUP BY时,如何获得总计的百分比?

对于大型集合,JOIN的性能可能优于子查询

SELECT ma.actor
     , COUNT(1) AS total
     , COUNT(1) / t.cnt * 100 AS `percentage`
  FROM movies_actors ma
 CROSS
  JOIN (SELECT COUNT(1) AS cnt FROM movies_actors) t
 GROUP
    BY ma.actor
     , t.cnt

对于大型集合,当返回很大比例的行时,JOIN操作通常可以胜过子查询。在您的情况下,它不是相关子查询,因此MysqL不必多次执行该子查询,因此它可能没有任何区别。

注意COUNT(1)…的非粉丝,我们可以COUNT(1)COUNT(*)或替换任何和所有出现的或IFNULL(SUM(1),0)获得同等的结果。

其他 2022/1/1 18:20:24 有218人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶