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

如何为查询上一次出席记录的SQL新增累计出席次数字段

解决方案

可通过新增COUNT窗口函数直接统计每个ID的累计出席总次数,无需额外关联子查询,修改后的SQL如下:

SELECT 
    ID,
    IDATE AS DATE,
    AttendTotal AS [Count]
FROM (
    SELECT 
        ROW_NUMBER() OVER (PARTITION BY A.ID ORDER BY A.IDATE DESC) AS rowNum,
        COUNT(*) OVER (PARTITION BY A.ID) AS AttendTotal,
        A.ID,
        A.IDATE
    FROM ATTENDANCE A 
    INNER JOIN STUDENT_LINE SL ON A.ID = SL.ID 
) withRowNum 
WHERE rowNum = 2

改动说明

  • 新增COUNT(*) OVER (PARTITION BY A.ID)窗口函数,按ID分组统计对应人员的所有出席记录数,同一ID的所有行都会返回相同的总次数值
  • 外层查询直接取出总次数字段,别名设置为要求的Count即可,若你使用的数据库将Count识别为保留字,用对应数据库的标识符包裹即可(如SQL Server用方括号、MySQL用反引号)
  • 你原代码中的select top ID属于语法错误,TOP关键字后需指定返回行数,当前业务逻辑是按ID分组取每组第二条记录,不需要加TOP,已在修改后的代码中移除

内容的提问来源于stack exchange,提问作者Helen Neely

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 21:06:04