You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按时间戳分组的SQL未按日统计销量的异常问题排查

解决按日统计产品销售总量的SQL问题

嘿,我懂你遇到的问题了——你当前的SQL是按完整的时间戳(包含时分秒)来分组的,所以哪怕是同一天的不同时间点,都会被拆成单独的分组,这就导致你没法拿到每日的销售总量。

核心解决方案

要实现按日统计,你需要把created_at字段转换为纯日期格式(忽略时分秒),然后按转换后的日期分组。不同数据库的日期转换函数略有不同,下面是几种常见数据库的实现方式:

MySQL/MariaDB 版本

SELECT 
    DATE(created_at) AS sale_date, 
    SUM(quantity) AS product_sales 
FROM sales_products 
WHERE created_at > '2018-04-19' 
GROUP BY DATE(created_at) 
ORDER BY sale_date DESC 
LIMIT 100;

PostgreSQL 版本

SELECT 
    DATE_TRUNC('day', created_at)::DATE AS sale_date, 
    SUM(quantity) AS product_sales 
FROM sales_products 
WHERE created_at > '2018-04-19' 
GROUP BY DATE_TRUNC('day', created_at) 
ORDER BY sale_date DESC 
LIMIT 100;

SQL Server 版本

SELECT 
    CAST(created_at AS DATE) AS sale_date, 
    SUM(quantity) AS product_sales 
FROM sales_products 
WHERE created_at > '2018-04-19' 
GROUP BY CAST(created_at AS DATE) 
ORDER BY sale_date DESC 
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY;

Oracle 版本

SELECT 
    TRUNC(created_at) AS sale_date, 
    SUM(quantity) AS product_sales 
FROM sales_products 
WHERE created_at > TO_DATE('2018-04-19', 'YYYY-MM-DD') 
GROUP BY TRUNC(created_at) 
ORDER BY sale_date DESC 
FETCH FIRST 100 ROWS ONLY;

效果说明

修改后,查询结果会把同一天的所有销售记录合并,sale_date字段显示为纯日期(例如2018-05-01),product_sales则是当日所有销量的总和,完全符合你按日统计的需求。

内容的提问来源于stack exchange,提问作者Filippos Georgiou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:58:23