SQL ACCESS 2010按组排名前80%

时间:2016-09-01 17:43:22

标签: sql ms-access

我试图计算每个唯一标识符的前80%的时间值,因此我需要按该标识符进行分组。自从与我合作的表格以来,我遇到了麻烦,有1500万条记录。我找到并使用的查询可以设法完成,但一旦我尝试滚动信息就会崩溃访问。

SELECT TID, DATE, TRAVEL_TIME
FROM FH_2015
WHERE TRAVEL_TIME IN
(SELECT TOP 80 PERCENT TRAVEL_TIME
FROM FH_2015 AS A
WHERE A.TID = FH_2015.TID and A.DATE = FH_2015.DATE
ORDER BY TRAVEL_TIME ASC);

1 个答案:

答案 0 :(得分:0)

假设TID是唯一的记录标识符,这就是您应该需要的全部内容:

SELECT TID, DATE, TRAVEL_TIME
FROM FH_2015
WHERE TID IN
(SELECT TOP 80 PERCENT
    TID
    FROM FH_2015
    ORDER BY TRAVEL_TIME DESC)

如果您实际上正在寻找TRAVEL_TIME的前80%,请注意DESC

实际上你可以这样做:

SELECT TOP 80 PERCENT
TID, DATE, TRAVEL_TIME
FROM FH_2015
ORDER BY TRAVEL_TIME DESC