SQL知识点:统计当月数据、统计近7天、近30天
按日期统计数据
1、统计当月数据
使用date_forma函数把日期换成年-月,按年月进行分组,即实现按月统计
点击查看代码
SELECT DATE_FORMAT(trans_date, '%Y-%m') AS month,
country,
COUNT(*) AS trans_count,
COUNT(IF(state = 'approved', 1, NULL)) AS approved_count,
SUM(amount) AS trans_total_amount,
SUM(IF(state = 'approved', amount, 0)) AS approved_total_amount
FROM Transactions
GROUP BY month, country
# %y年份的后两位,%Y年份的四位
# %m月份会按数字展示,%M会按月份英文展示
在实际应用中,可以根据需要组合使用这些占位符来格式化日期和时间。例如,可以使用
DATE_FORMAT(date_column, '%Y-%M-%d')来格式化日期为年份-月份英文名称-日期的形式,或者使用
DATE_FORMAT(date_column, '%m/%d/%Y')来格式化日期为
月份数字/日期/年份的形式。
2、统计近7天、近30天
在MySQL中,你可以使用DATE_SUB()函数来计算当前日期之前的日期,然后使用这些日期进行筛选。
点击查看代码
SELECT * FROM your_table
WHERE your_date_column >= DATE_SUB(CURDATE(), INTERVAL 7 DAY);
https://leetcode.cn/problems/user-activity-for-the-past-30-days-i/?envType=study-plan-v2&envId=sql-free-50
# DATE_SUB(date_or_datetime_expr, INTERVAL expr time_unit)
#从日期上减去指定的天数:
SELECT DATE_SUB('2024-09-27', INTERVAL 7 DAY);
#从日期时间上减去指定的小时数:
SELECT DATE_SUB('2024-09-27 10:00:00', INTERVAL 2 HOUR);
浙公网安备 33010602011771号