[MySQL]group by 与 having 结合函数 的统计技巧
2024-08-27 02:17:20
group by 与 having 允许字段使用函数,根据函数运行的结果group by分组或having设置选择条件;
同时group by 与 having 也允许使用字段别名
示例表a:
id | a | effective_date |
38 | 1 | 2018-03-23 09:55:58 |
39 | 9 | 2018-03-22 09:56:04 |
66 | 1 | 2018-02-21 09:56:09 |
68 | 6 | 2018-01-13 09:56:17 |
69 | 1 | 0000-00-00 00:00:00 |
示例表b:
id | u_id | amount | t4_date |
1 | 39 | 30 | 2017-07-28 15:30:00 |
2 | 66 | 21 | 2018-03-08 10:07:40 |
3 | 69 | 13 | 2018-03-01 10:09:00 |
应用示例:
1.单表格式化分组
SELECT sum(a) FROM test_1 GROUP BY DATE_FORMAT(effective_date,"%Y-%m");
sum(a) |
1 |
6 |
1 |
10 |
2.单表格式化分组(使用别名)
SELECT DATE_FORMAT(effective_date,"%Y-%m") AS date, sum(a) FROM test_1 GROUP BY date;
date | sum(a) |
0000-00 | 1 |
2018-01 | 6 |
2018-02 | 1 |
2018-03 | 10 |
3.单表格式化分组,having选择输出的行(使用别名)
SELECT DATE_FORMAT(effective_date,"%Y-%m") AS date, sum(a) FROM test_1 GROUP BY date HAVING date = "2018-02";
date | sum(a) |
2018-02 | 1 |
4.连表应用
SELECT DATE_FORMAT(b.t4_date,"%Y-%m") AS date, sum(a.a) FROM test_1 AS a LEFT JOIN test_4 AS b ON a.id = b.u_id GROUP BY date HAVING date = "2018-03";
date | sum(a.a) |
2018-03 | 2 |
最新文章
- 轻量的、可自定义 CSS 的 Lightbox 相册插件
- PHP debug 环境配置
- CENTOS 下 编译安装 tesseract-ocr 3.0.4 识别文字
- little's law(律特法则)
- mvc5入门,经典教程。。
- 01_JavaMail_04_带附件邮件的发送
- 小技巧-Try Catch
- jQeury学习笔记
- 探索WebKit核心(一)------ 新秀开始
- java+sql 编码 UTF-8、ISO-8859-1、GBK
- java高级---->;Thread之ScheduledExecutorService的使用
- Dojo框架:误解与现实[转载]
- java多线程快速入门(十)
- EM学习-思想和代码
- 开源软件License汇总
- 微信小程序——时间戳的转换及调用
- POJ 2104 K-th Number(主席树模板题)
- Java并发编程--1.Thread和Runnable
- json数据的用法
- Jetty源码学习-编译Jetty源码二三事