
MySQL group by 不对 null 进行分组统计
发布日期:2021-05-14 09:31:53
浏览次数:13
分类:博客文章
本文共 911 字,大约阅读时间需要 3 分钟。
MySQL group by 不对 null 进行分组统计
在使用 group by
某列名进行分组统计时,该列名的数据有些为 null, 因而会出现 null 的数据行全部分成一组导致数据错误,所以 null 列名的数据行不能执行 group by
IFNULL() 函数和 UUID() 函数
网上有类似的解决方案,通过IFNULL()
函数搭配UUID()
函数即可解决。
1、IFNULL() 函数
IFNULL()
函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
格式如下:
IFNULL(expression, alt_value)-- 即可以是列名IFNULL(user.id, "hahha")-- 也可以是具体的值IFNULL(null, "hahha")
2、UUID() 函数
UUID()
函数是可以生成时间上独一无二的值。
select UUID()
3、结合使用
因此,在 group by
后使用这两个函数的格式可以如下
group by IFNULL('列名', UUID())
部分的sql语句如下,如果合同编码为空,则不进行分组。
SELECT c.code as '合同编码', a.contract_money AS '合同总额', a.maintain_money AS '维护费金额', sum(a.actual_money) AS '已收款金额' FROM finance_contract_receipt a LEFT JOIN business_customer b ON b.id = a.customer_id LEFT JOIN finance_contract c ON c.id = a.contract_id LEFT JOIN base_type d ON d.id = a.type GROUP BY IFNULL(c.code, UUID())ORDER BY STR_TO_DATE(c.contract_date, '%Y-%m-%d') ASC;
效果截图如下
至此,问题解决。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月30日 19时55分41秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
论文报告/前沿文章
2019-03-11
函数与高级变量
2019-03-11
键盘事件
2019-03-11
弱监督
2019-03-11
二 召回算法
2019-03-11
2020-11月计划实施表
2019-03-11
个人常用网络
2019-03-11
折线图
2019-03-11
常识:
2019-03-11
注册页面案例
2019-03-11
np.bincount(x)的简单解释
2019-03-11
一些面试的准备的回答
2019-03-11
django中文件的上传问题
2019-03-11
Spark Standalone模式下启动集群的基本流程
2019-03-11
LeetCode Top-100 T22-括号生成
2019-03-11
svg基础+微信公众号交互(二)
2019-03-11
webstorm 自定义快捷键
2019-03-11
vscode设置eslint保存文件时自动修复eslint错误
2019-03-11
deepin 安装过程记录
2019-03-11
JAVA 多线程
2019-03-11