如何在MySQL数据库中查询获取按日维度拆分的分组数据
MySQL按天维度查询实现方案
假设你的业务表名为your_table,表内包含ID、Name字段,以及存储记录生成时间的日期/时间类型字段create_time,可以按以下方式编写SQL:
首先执行语句设置时间语言为英文,保证星期输出为英文缩写:
SET lc_time_names = 'en_US';
查询单条记录对应星期的语句(匹配你给出的输出格式):
SELECT ID, Name, UPPER(DATE_FORMAT(create_time, '%a')) AS `DAY` FROM your_table ORDER BY ID;
如果需要做按天维度的聚合统计(比如统计每天的记录数),可以改用分组查询逻辑:
SELECT DATE(create_time) AS 统计日期, UPPER(DATE_FORMAT(create_time, '%a')) AS `DAY`, COUNT(*) AS 当日记录数 FROM your_table GROUP BY 统计日期, `DAY` ORDER BY 统计日期;
说明
DATE_FORMAT(create_time, '%a')是MySQL专门用来格式化时间为英文星期缩写的函数,外层加UPPER()是为了输出全大写的星期值,和你示例的SAT、SUN格式对齐- 如果你的表内已经预先存储了星期对应的字段,直接在SELECT后引用该字段即可,不需要额外做格式转换
内容的提问来源于stack exchange,提问作者sharif
相关产品推荐
相关产品推荐

