mysql通过 3个字段 分别是 年 月 日 字段格式为 年 = YYYY,月=MM ,日=DD 。返回的字段 年 ,月, 当前月每周的条数和每周中某个字段不为null的个数
时间: 2024-05-14 13:12:21 浏览: 61
SQL按照日、周、月、年统计数据的方法分享
5星 · 资源好评率100%
可以使用MySQL中的DATE_FORMAT函数将日期字段格式化为需要的年、月、日格式,然后使用WEEK函数获取当前月每周的编号,再通过COUNT和SUM函数统计每周的条数和某个字段不为null的个数。
下面是一种可能的SQL查询语句:
```
SELECT
DATE_FORMAT(date_field, '%Y') AS year,
DATE_FORMAT(date_field, '%m') AS month,
WEEK(date_field) AS week_number,
COUNT(*) AS total_count,
SUM(CASE WHEN another_field IS NOT NULL THEN 1 ELSE 0 END) AS not_null_count
FROM table_name
WHERE DATE_FORMAT(date_field, '%Y') = 'YYYY' AND DATE_FORMAT(date_field, '%m') = 'MM'
GROUP BY year, month, week_number;
```
其中,需要将table_name和date_field替换为实际的表名和日期字段名,将YYYY和MM替换为需要查询的年和月份。另外,如果需要统计的不是某个特定的字段,而是整行记录数,则可以将SUM函数中的CASE语句改为1即可。
阅读全文