MySQL汇总排序查询
2023-04-18 17:00:41 时间
问题
两个要求: ①计算出来的字段销售总额保留两位小数; ②排序时,汇总不参与排序,放在最下面。
要求①实现一
case when 加汇总,但是orderby排序对所有行排序,汇总的销售金额最大一直在最上面
SELECT case when grouping(店铺名称)=1 then "汇总" else 店铺名称 end 店铺名称,
round(sum(交易金额),2) as 销售额求和
FROM test
group by 店铺名称 with rollup
order by 销售额求和 desc ;
要求①实现二
COALESCE 加汇总,作用类似于方案一中的case when,、都是使用with rollup进行汇总
SELECT COALESCE ( `店铺名称`, '汇总' ) AS 店铺,
round(sum(交易金额),2) AS 销售总额
FROM test
GROUP BY `店铺名称` WITH ROLLUP
ORDER BY 销售总额 DESC
要求②实现一
if 相当于用条件判断添加了一列隐藏列,order by先对店铺进行排序再对销售额排序,这样汇总行就跑最下面去了,因为汇总行的索引为1,其他店铺名称的索引都是0
SELECT COALESCE ( `店铺名称`, '汇总' ) AS 店铺,
round(sum(交易金额),2) AS 销售总额
FROM test
GROUP BY `店铺名称` WITH ROLLUP
ORDER BY if (店铺 = '汇总',1,0),销售总额 DESC
要求②实现二
Sql1 union sql2 union 相当于追加查询,把两个查询结果拼接再一起
(select `店铺名称` ,round(sum(交易金额),2) AS 销售总额
from test group by `店铺名称`
order by 销售总额 desc)
union
(select '汇总',round(sum(交易金额),2) AS 销售总额
from test)
友情链接:Mysql 数据分组&条件排序
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!