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

如何使用SQL对数据表中各项目的日期字段进行排名?

问题分析与修正方案

原SQL存在的问题

  • SELECT TOP 语法错误:TOP后必须指定返回行数(如TOP 100),若不需要限制行数则直接去掉TOP
  • 字段名不匹配:你的表结构中项目字段是Project,日期字段是Date,但SQL中错误使用了Project_Name和End_Date
  • 语法缺失:[Project]后缺少逗号,导致字段分隔错误

修正后的SQL语句

如果不需要限制返回行数,使用以下语句:

SELECT
  [Date],
  [Project],
  RANK() OVER(PARTITION BY [Project] ORDER BY [Date] ASC) AS Rank
FROM Table_Name

如果需要限制返回行数(例如前100条),则添加TOP:

SELECT TOP 100
  [Date],
  [Project],
  RANK() OVER(PARTITION BY [Project] ORDER BY [Date] ASC) AS Rank
FROM Table_Name

说明

  • PARTITION BY [Project]:按项目名称分组,对每个项目单独计算排名
  • ORDER BY [Date] ASC:按日期升序排列,实现同项目内日期从早到晚的排名逻辑
  • RANK()函数会为同项目内的记录分配排名,若存在相同日期会得到相同排名,后续排名会跳过对应数量的位次(若需要连续无跳跃的排名,可改用ROW_NUMBER()函数)

内容的提问来源于stack exchange,提问作者Ajit Sahoo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:15:02