yhdata_MB5fOVHS铂金四
2022-4-1 08:07:05 发布在问答
【常用脚本】 sql
MySQL数据库,现在的需求是利润根据产品名称分组,分组完之后的数据需要取出顺数前十(和倒数前十)的记录(客户想用sql实现来提高报表的性能),请问这个要怎么实现呢(order by和limit实现的效果对嘛)?谢谢呀
2021
5
精彩评论5
永洪tech-Lerry青铜一
发表于 2022-4-1 10:01:33 显示全部楼层
前十: select "产品名称", SUM("利润") from "表名" group by "产品名称" ORDER by SUM("利润") desc LIMIT 10
后十: select "产品名称", SUM("利润") from "表名" group by "产品名称" ORDER by SUM("利润")  LIMIT 10
把"产品名称","利润","表名" 替换成您这边对应的列名
您试下这样能用不
回复

使用道具 2#

yhdata_MB5fOVHS铂金四
发表于 2022-4-1 10:05:07 显示全部楼层
永洪tech-Lerry 发表于 2022-4-1 10:01
前十: select "产品名称", SUM("利润") from "表名" group by "产品名称" ORDER by SUM("利润") desc LIMI ...

e嗯嗯,这么写是可以的嘛,那如果我第十和第十一、二条记录利润值是相同的,这个它是会随机取一个数是嘛,我查资料好像是这么说的
回复

使用道具 3#

永洪tech-Lerry青铜一
发表于 2022-4-1 10:29:30 显示全部楼层
yhdata_MB5fOVHS 发表于 2022-4-1 10:05
e嗯嗯,这么写是可以的嘛,那如果我第十和第十一、二条记录利润值是相同的,这个它是会随机取一个数是嘛 ...

是的,如果您需要查询并列占位或不占位的前十可以参考https://www.cnblogs.com/zh718594493/p/16036320.html这个这样构造,然后在语句后面加上where rank <= 10。
回复

使用道具 4#

yhdata_MB5fOVHS铂金四
发表于 2022-4-1 11:09:44 显示全部楼层
永洪tech-Lerry 发表于 2022-4-1 10:29
是的,如果您需要查询并列占位或不占位的前十可以参考https://www.cnblogs.com/zh718594493/p/16036320.h ...

嗯嗯,好的,谢谢呀
回复

使用道具 5#

永洪tech-Lerry青铜一
发表于 2022-4-1 11:33:31 显示全部楼层
yhdata_MB5fOVHS 发表于 2022-4-1 11:09
嗯嗯,好的,谢谢呀

回复

使用道具 6#

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
1500W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部