MYSql 前 10 名及其他合计 [英] MYSql Top 10 and Others Total

查看:57
本文介绍了MYSql 前 10 名及其他合计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的这个查询运行良好,但我只需要前 10 名供应商.

I have this query that works fine but I need just the top 10 vendors.

然后我需要在所有其他"行中计算所有剩余的总数.

Then I need all the remaining totaled in a "All Others" row.

如何在没有使用 LIMIT 10, 18446744073709551615

SELECT VENDOR_fullname,SUM(POTENTIAL_RECOVERY)
FROM COMPLETE
GROUP BY VENDOR_fullname
ORDER BY SUM(POTENTIAL_RECOVERY) DESC;

推荐答案

为了记录,我同意@DamienBlack 的评论,但是如果它必须在一个查询中完成,UNIONALL 都可以做到:

For the record, I agree with @DamienBlack's comment, however if it had to be done in one query a UNION ALL could do the trick:

(
  SELECT VENDOR_fullname as name, SUM(POTENTIAL_RECOVERY) as recovery
  FROM COMPLETE
  GROUP BY VENDOR_fullname
  ORDER BY SUM(POTENTIAL_RECOVERY) DESC
  LIMIT 10
)
UNION ALL
(
  SELECT 'All others' as name, SUM(subtotal) as recovery
  FROM 
  (
    SELECT SUM(POTENTIAL_RECOVERY)
    FROM COMPLETE
    GROUP BY VENDOR_fullname
    ORDER BY SUM(POTENTIAL_RECOVERY) DESC
    LIMIT 10, 18446744073709551615
  ) as subtotal;
)

这篇关于MYSql 前 10 名及其他合计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆