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

如何在SQL学生任务计数查询中新增按日期汇总统计列

解决方案

你可以通过窗口聚合函数实现需求,这是兼容性最强、代码最简洁的实现方式,支持SQL Server、MySQL 8.0+、PostgreSQL等所有主流新版本数据库。

原来的查询里DISTINCT是冗余的,因为已经通过GROUP BY指定了分组维度,返回结果天然去重,可以直接去掉。修改后的查询如下:

SELECT  
    Date
    , Task_Name [Task Performed]
    , Student_Name [Name]
    , COUNT(Name) [Count]
    , SUM(COUNT(Name)) OVER (PARTITION BY Date) [Total Count by Date]
FROM Datamining.dbo.Registry 
GROUP BY Date, Task_Name, Student_Name

低版本数据库兼容方案

如果你使用的是不支持窗口函数的老版本数据库(比如MySQL 5.x),可以通过子查询先计算每日总计数,再和原统计结果关联实现:

SELECT 
    t1.Date
    , t1.[Task Performed]
    , t1.Name
    , t1.Count
    , t2.DateTotal [Total Count by Date]
FROM (
    SELECT  
        Date
        , Task_Name [Task Performed]
        , Student_Name [Name]
        , COUNT(Name) [Count]
    FROM Datamining.dbo.Registry 
    GROUP BY Date, Task_Name, Student_Name
) t1
INNER JOIN (
    SELECT Date, SUM(Count) DateTotal
    FROM (
        SELECT Date, COUNT(Name) [Count]
        FROM Datamining.dbo.Registry 
        GROUP BY Date, Task_Name, Student_Name
    ) tmp
    GROUP BY Date
) t2 ON t1.Date = t2.Date

内容的提问来源于stack exchange,提问作者Real Gem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:36:04