如何按日期统计comment与seller同时为null的记录数,order_time非时间类型
按日期分组统计双空字段记录数的实现方案
要完成该统计需求,核心逻辑分为三步:将非日期类型的order_time字段转换为标准日期格式、过滤comment和seller同时为NULL的记录、按转换后的日期分组计数即可,以下是主流数据库的实现示例:
- MySQL 实现
假设order_time为YYYYMMDD格式的字符串,代码如下:
SELECT DATE(STR_TO_DATE(order_time, '%Y%m%d')) AS stat_date, COUNT(*) AS target_record_count FROM 你的表名 WHERE comment IS NULL AND seller IS NULL GROUP BY stat_date ORDER BY stat_date;
如果order_time为秒级时间戳,可将日期转换逻辑替换为FROM_UNIXTIME(CAST(order_time AS UNSIGNED), '%Y-%m-%d')。
- PostgreSQL 实现
SELECT TO_DATE(order_time, 'YYYYMMDD') AS stat_date, COUNT(*) AS target_record_count FROM 你的表名 WHERE comment IS NULL AND seller IS NULL GROUP BY stat_date ORDER BY stat_date;
- SQL Server 实现
SELECT CONVERT(DATE, order_time, 112) AS stat_date, COUNT(*) AS target_record_count FROM 你的表名 WHERE comment IS NULL AND seller IS NULL GROUP BY CONVERT(DATE, order_time, 112) ORDER BY stat_date;
注意:请根据你实际的
order_time存储格式调整日期转换函数的格式化参数,若存在非法格式的order_time值,可先新增过滤规则排除无效数据后再执行统计。
内容的提问来源于stack exchange,提问作者Matias021
相关产品推荐
相关产品推荐

