[英]SQL ACCESS 2010 Top 80 Percent by Group
I'm trying to to calculate the top 80 percent of a time value per a unique identifier, so I need to group by that identifier. 我正在尝试计算每个唯一标识符的时间值的前80%,因此我需要对该标识符进行分组。 To which I am having trouble since the table I'm working with has 15 million records. 由于要使用的表有1500万条记录,因此我遇到了麻烦。 A query that I found and used can manage to complete but crashes access once I try to scroll through the information. 我找到并使用的查询可以设法完成,但是一旦我尝试滚动查看信息,访问就会崩溃。
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);
Assuming TID is a unique record identifier, this is all you should need: 假设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)
Note the DESC
if you are actually looking for the top 80% of the TRAVEL_TIME. 如果您实际上正在寻找TRAVEL_TIME的前80%,请注意DESC
。
And actually you could just do this: 实际上,您可以这样做:
SELECT TOP 80 PERCENT
TID, DATE, TRAVEL_TIME
FROM FH_2015
ORDER BY TRAVEL_TIME DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.