前言
做数仓开发离不开 SQL ,写了很多 HQL 回头再看 MySQL 才发现,很多东西并不是 HQL 所独创的,而是几乎都来自于关系型数据库通用的 SQL;想到以后需要每天和数仓打交道,那么不管是 MySQL 还是 Oracle ,都需要深入了解一下,不能只停留在之前的 CRUD 上了。
1、MySQL 函数
1.1、GROUP_CONCAT 聚合函数
1.1.1、语法
GROUP_CONCAT([DISTINCT] 字段名* [ORDER BY DESC|ASC] [SEPARATOR] )
1.1.2、使用案例
把不同部门的员工合并到一行,按照 id 进行升序排序,并用 '-' 分割开来:
SELECT department,GROUP_CONCAT(DISTINCT emp_id,emp_name ORDER BY emp_id SEPARATOR '-') AS id_with_name FROM emp GROUP BY department;
运行结果:
1.2、数学函数
简单的函数没有必要啰嗦,这里只介绍一些常用的:
- ABS:绝对值
- CEIL:向上取整
- FLOOR:向下取整
- RAND:0~1随机数
- ROUND(x):四舍五入取整
- ROUND(x,y):四舍五入保留 y 位小数
- TRUNCATE(x,y):不四舍五入保留 y 位小数
1.3、字符串函数
1.4、日期函数
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)https://developer.aliyun.com/article/1534302