sql有哪些函数
① SQL常用经典函数大全
SQL常用经典函数主要包括以下几类:
一、字符串处理函数 SUBSTR:截取字符串的子串。 CONCAT:合并字符串。 UPPER:将字符串转换为大写。 LOWER:将字符串转换为小写。 LENGTH:测量字符串的长度。 TRIM:删除字符串两端的空格。 REPLACE:替换字符串中的特定字符。
二、数值处理函数 ROUND:对数值进行四舍五入。 ABS:获取数值的绝对值。 TRUNCATE:精确到指定的小数位。
三、日期和时间处理函数 DATE_FORMAT:格式化日期。 NOW:获取当前的日期和时间。 DATE_ADD:在日期上加上指定的时间间隔。 DATE_SUB:在日期上减去指定的时间间隔。 DATEDIFF:计算两个日期之间的天数差。 EXTRACT:提取日期中的特定部分。 STR_TO_DATE:将字符串转换为日期。 CONVERT:用于日期或其他数据类型的转换。
四、统计和聚合函数 COUNT:统计非空值的数量。 SUM:计算数值的总和。 AVG:计算数值的平均值。 MAX:找出数值中的最大值。 MIN:找出数值中的最小值。 GROUP_CONCAT:将分组后的值连接成一个字符串。
五、条件判断函数 COALESCE:返回第一个非NULL的值。 NULLIF:如果两个值相等,则返回NULL,否则返回第一个值。 CASE WHEN:实现复杂的条件判断逻辑。 IFNULL:如果值为NULL,则返回指定的值。
六、其他函数 RAND:生成随机数。 INET_ATON:将IPv4地址转换为数字表示。 INET_NTOA:将数字表示的IPv4地址转换回点分十进制表示。
这些函数在SQL查询中发挥着重要作用,能够帮助你高效地处理和操作数据库中的数据。熟练掌握这些函数将极大提升你的SQL编程能力。
② SQL中累计求和与滑动求和函数sum() over()用法
在SQL中,sum()函数的扩展功能——窗口函数sum() over()提供了三种主要用法:分组求和、累计求和和滑动求和。让我们通过实例来理解这些场景的实现方式。
首先,以数据表dws_js_team_gmv为例,包含团队名、月份和成交额字段。我们来看三种求和需求的SQL代码:
1. 要求是计算每个销售团队的年累计成交额及其对累计值的贡献占比,这可以通过分组求和并保留当前行数实现,SQL代码如下:
SQL逻辑:
SQL跑数结果:
2. 对于逐月累计业绩,从1月开始,同样需要分组求和并保留当前行,代码如下:
SQL逻辑:
SQL跑数结果:
3. 接下来是近3个月的累计业绩(包括统计月)。这里涉及到滑动求和,用window函数over()设置滑动范围,例如范围从当前行前2行到当前行,代码示例:
SQL逻辑:
对于不包含统计月的近3个月累计业绩,有三种处理方法:
① 通过减去统计月的值,计算近4个月的滑动求和:range between 2 preceding and 0 following 或 2 preceding and current row
② 调整滑动区间为3个前一月到前两个前一月:range between 3 preceding and 1 preceding
③ 或者调整为3个前一月到后一个前一月:range between 3 preceding and -1 following
这些SQL代码展示了sum() over()函数在不同场景下的应用,帮助我们灵活处理累计和滑动求和需求。