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

在MS Access中实现各赛段最短用时数据查询(无ROW_NUMBER()函数)

在MS Access中获取各赛段最短时长选手数据的可行方案

由于MS Access不支持ROW_NUMBER()这类窗口函数,你之前的SQL无法执行,这里提供两种可行的替代实现方式:

方法一:分组获取最短时长后关联查询

这种方式先通过分组得到每个赛段的最短完成时长,再关联原表筛选出对应选手数据:

SELECT i.Num_dossard, i.Num_etape, i.Resultat
FROM import_donnees AS i
INNER JOIN (
    -- 按赛段分组,计算每个赛段的最短时长
    SELECT Num_etape, MIN(Resultat) AS Min_Resultat
    FROM import_donnees
    GROUP BY Num_etape
) AS m 
ON i.Num_etape = m.Num_etape AND i.Resultat = m.Min_Resultat
-- 按赛段和选手ID排序,可根据需求调整
ORDER BY i.Num_etape, i.Num_dossard;

说明:如果同一赛段有多名选手完成时长相同且均为最短,该查询会返回所有符合条件的选手数据。

方法二:子查询计数模拟窗口函数逻辑

通过子查询统计同赛段内时长更短的选手数量,筛选出数量为0的记录(即当前选手时长最短):

SELECT i.Num_dossard, i.Num_etape, i.Resultat
FROM import_donnees AS i
WHERE (
    SELECT COUNT(*) 
    FROM import_donnees AS j 
    -- 限定同赛段,且时长比当前记录更短
    WHERE j.Num_etape = i.Num_etape AND j.Resultat < i.Resultat
) = 0
ORDER BY i.Num_etape, i.Num_dossard;

说明:同样支持返回同赛段内所有最短时长的选手,逻辑上等价于窗口函数中RANK()的效果。

内容的提问来源于stack exchange,提问作者Axel Elias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:48:16