关于mysql单表根据按照某一字段按照年份统计总数

该博客展示了如何使用SQL查询从log表中按月份统计每个学校创建活动的总数,并按日期降序排列,提供了统计结果图表作为参考。

单表某一字段根据月份进行统计总量

SELECT
    COUNT(1) AS countNumber,
    DATE_FORMAT(created_at,'%Y-%m') AS dateTime,
    school_id
FROM log WHERE school_id>0 
GROUP BY dateTime, school_id ORDER B![在这里插入图片描述](https://img-blog.csdnimg.cn/352cd987b9ec4707a265d98e64d42ae1.png#pic_center)
Y dateTime DESC;```

**统计结果为:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/0da7174c430f4a55881d4152a48bea04.png)

MySQL 中查询每个月的数据总数,通常需要使用 `GROUP BY` 子句结合日期函数来实现。假设有 `orders`,其中包含个记录订日期的字段 `order_date`,可以通过以下方式统计每个月的数据总量。 ### 查询每月数据总数的基本方法 可以使用 `YEAR()` `MONTH()` 函数分别提取年份月份,并按这两个字段进行分组以统计数量。以下是示例 SQL 语句: ```sql SELECT YEAR(order_date) AS year, MONTH(order_date) AS month, COUNT(*) AS total_count FROM orders WHERE YEAR(order_date) = 2023 GROUP BY year, month ORDER BY year, month; ``` 此查询会返回指定年份(如 2023 年)内每个月的订数量[^1]。通过 `YEAR(order_date)` 提取年份、`MONTH(order_date)` 提取月份,并使用 `COUNT(*)` 统计记录数,最终按年月排序输出结果。 ### 使用 `DATE_FORMAT` 简化查询 如果只需要按月份进行聚合,而不关心具体年份,或者希望将日期格式化为 `YYYY-MM` 形式,可以使用 `DATE_FORMAT` 函数简化查询: ```sql SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, COUNT(*) AS total_count FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31' GROUP BY month ORDER BY month; ``` 该查询使用 `DATE_FORMAT(order_date, '%Y-%m')` 将日期格式化为 `YYYY-MM` 字符串,并基于该字符串进行分组。这种方式适用于跨年度查询或多联合分析[^3]。 ### 多条件分组与分类统计 如果需要对多个类别或来源进行分组统计,例如不同类型的订或事件来源,可以在 `SELECT` `GROUP BY` 中加入额外字段: ```sql SELECT DATE_FORMAT(create_time, '%Y%m') AS month, (CASE t.ai_create WHEN 3 THEN '人工新增' WHEN 1 THEN 'Ai规则打出' WHEN 2 THEN 'Ai研究院打出' ELSE '系统公开=Ai规则打出' END) AS source, COUNT(0) AS total_count FROM feelings t WHERE create_time BETWEEN '2023-01-01' AND '2023-12-31' GROUP BY month, t.ai_create ORDER BY month, t.ai_create; ``` 此查询展示了如何在按月份分组的基础上,进根据事件来源(或其他分类字段)进行分组并统计每类的数量[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

撸猫@冒泡泡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值