SQL 常用函数总结(一)

聚合函数

1. COUNT()

COUNT() 函数用于计算一个表格或查询结果集合中的行数。

语法:COUNT(column_name)COUNT(*)

  • column_name 是可选的,表示计算某一列的非空值数量。
  • * 表示计算所有行的数量。

示例1:计算 users 表格中所有记录的数量

SELECT COUNT(*) FROM users;

示例2:计算 orders 表格中 paid_amount 列非空值的数量

SELECT COUNT(paid_amount) FROM orders;

2. SUM()

SUM() 函数用于计算一个表格或查询结果集合中某一列的数值总和。

语法:SUM(column_name)

示例:计算 employees 表格中所有员工的薪资总和

SELECT SUM(salary) FROM employees;

3. AVG()

AVG() 函数用于计算一个表格或查询结果集合中某一列的数值平均值。

语法:AVG(column_name)

示例:计算 employees 表格中所有员工的平均薪资

SELECT AVG(salary) FROM employees;

4. MAX()

MAX() 函数用于获取一个表格或查询结果集合中某一列的最大值。

语法:MAX(column_name)

示例:获取 employees 表格中薪资最高的员工薪资

SELECT MAX(salary) FROM employees;

5. MIN()

MIN() 函数用于获取一个表格或查询结果集合中某一列的最小值。

语法:MIN(column_name)

示例:获取 employees 表格中薪资最低的员工薪资

SELECT MIN(salary) FROM employees;

6. GROUP BY

GROUP BY 子句用于将查询结果集按照一个或多个列进行分组,然后对每组数据进行统计。

语法:SELECT column_name1, aggregate_function(column_name2) FROM table_name GROUP BY column_name1;

示例:计算 employees 表格中每个部门的薪资平均值

SELECT department, AVG(salary) FROM employees GROUP BY department;

这将返回每个不同部门的平均薪资。

日期函数

1. DATE()

DATE() 函数返回一个日期数据的日期部分。

语法:DATE(date)

示例:获取当前日期

SELECT DATE(NOW());

2. NOW()

NOW() 函数返回当前日期和时间的日期时间值。

语法:NOW()

示例:获取当前日期和时间

SELECT NOW();

3. YEAR()

YEAR() 函数返回一个日期的年份部分。

语法:YEAR(date)

示例:获取 employees 表格中员工加入公司的年份

SELECT YEAR(join_date) FROM employees;

4. MONTH()

MONTH() 函数返回一个日期的月份部分。

语法:MONTH(date)

示例:获取订单表格 orders 中的订单创建月份

SELECT MONTH(created_at) FROM orders;

5. DAY()

DAY() 函数返回一个日期的天数部分。

语法:DAY(date)

示例:获取 customers 表格中每个客户注册时的具体日期

SELECT DAY(created_at) FROM customers;

6. HOUR()

HOUR() 函数返回一个日期时间的小时部分。

语法:HOUR(datetime)

示例:获取最近一次 logged_in 时间的小时部分

SELECT HOUR(logged_in) FROM users ORDER BY logged_in DESC LIMIT 1;

7. MINUTE()

MINUTE() 函数返回一个日期时间的分钟部分。

语法:MINUTE(datetime)

示例:获取当前时间的分钟数

SELECT MINUTE(NOW());

8. SECOND()

SECOND() 函数返回一个日期时间的秒数部分。

语法:SECOND(datetime)

示例:获取最后一次订单更新时的秒数

SELECT SECOND(updated_at) FROM orders ORDER BY updated_at DESC LIMIT 1;

9. DATE_ADD()

DATE_ADD() 函数在一个日期上添加指定的时间间隔后返回新的日期。

语法:DATE_ADD(date, INTERVAL expr unit)

  • date 参数:指定要添加时间间隔的日期。
  • expr 参数:指定要添加的时间间隔值。
  • unit 参数:指定时间间隔的单位,可以是 YEARMONTHWEEKDAYHOURMINUTESECOND

示例:计算下一次产品更新时间

SELECT DATE_ADD(NOW(), INTERVAL 1 WEEK);

这将返回当前日期七天后的日期。

10. DATE_SUB()

DATE_SUB() 函数在一个日期上减去指定的时间间隔后返回新的日期。

语法:DATE_SUB(date, INTERVAL expr unit)

示例:计算上一个客户服务时间

SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);

这将返回当前日期一个月前的日期。

11. DATEDIFF()

DATEDIFF() 是 SQL 中的一个日期函数,用于计算两个日期之间的天数差或日期时间差。

函数语法:

DATEDIFF(date1, date2)

其中,date1date2 可以是日期或日期时间格式的数据,函数将返回 date1date2 之间的间隔天数或日期时间差。

使用示例:

假如现在是 2022 年 1 月 1 日,查询某个用户最近一次登录时间距今日的天数:

SELECT DATEDIFF(NOW(), logged_in) AS days_ago FROM users WHERE user_id = 123;

在此例中,NOW() 表示当前日期时间,logged_in 是用于存储用户登录时间的字段,user_id = 123 是查询某一特定用户的登录信息。

该查询语句将返回一个名为 days_ago 的列,其中存储了最近一次登录距今日的天数。

注意:在使用 DATEDIFF() 函数计算时,如果两个输入日期的顺序颠倒,最终的计算结果将会是负数,也就是第一个日期减去第二个日期的结果,即 date2 - date1

例如,计算两个日期之间相差的天数:

SELECT DATEDIFF('2022-01-10', '2022-01-01') AS days_diff;

该查询语句将返回整数 9,表示 ‘2022-01-01’ 到 ‘2022-01-10’ 之间一共相隔了 9 天。

同样的,如果方法的参数颠倒,则返回一个负数,表示第二个日期比第一个日期早了多少天。

SELECT DATEDIFF('2022-01-01', '2022-01-10') AS days_diff;

注意到这里 days_diff 的值是 -9。

DATEDIFF() 是处理日期和时间差的很有用的 SQL 函数之一。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路上阡陌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值