|-------------------------------------------------------------- ----------------|
| Я БЫ. EXT phneNumber продолжительность |
|-------------------------------------------------------------- ----------------|
| 78172 101 2233379092 00:00:23.0 |
| 78175 104 2233818185 00:08:15.0 |
| 78176 101 9339444840 00:04:56.0 |
| 78177 108 2581594433 00:01:28.0 |
| 78179 104 2533815944 00:02:30.0 |
| 78180 101 2335343977 00:00:00.0 |
| 78181 101 2335343977 00:01:36.0 |
| 78186 108 9229661175 00:00:53.0 |
| 78193 104 2538633408 00:00:00.0 |
| 78194 108 2580013364 00:00:11.0 |
| 78196 104 2583300164 00:00:16.0 |
| 78197 104 9963341189 00:02:44.0 |
| 78198 101 9663319313 00:03:58.0 |
| 78199 101 2104834340 00:03:19.0 |
| 78205 104 2222020401 00:00:00.0 |
|-------------------------------------------------------------- ----------------|
The table above shows a part of the data in a microsoft Access 2007 database.
EXT is the extension of a phone
phneNumber is the number that was called from that extention
duration is the amount of time that the called lasted
Мне нужно написать запрос, чтобы найти 5 самых длинных (по продолжительности) вызовов для каждого расширения. Желаемый результат показан ниже
|--------------------------------------------------------------|
| ID. EXT phneNumber duration |
|--------------------------------------------------------------|
| 78176 101 9339444840 00:04:56.0 |
| 78198 101 9663319313 00:03:58.0 |
| 78199 101 2104834340 00:03:19.0 |
| 78181 101 2335343977 00:01:36.0 |
| 78172 101 2233379092 00:00:23.0 |
| 78175 104 2233818185 00:08:15.0 |
| 78197 104 9963341189 00:02:44.0 |
| 78179 104 2533815944 00:02:30.0 |
| 78196 104 2583300164 00:00:16.0 |
| 78193 104 2538633408 00:00:00.0 |
| 78177 108 2581594433 00:01:28.0 |
| 78186 108 9229661175 00:00:53.0 |
| 78194 108 2580013364 00:00:11.0 |
|--------------------------------------------------------------|
Я попробовал приведенный ниже запрос, но он не работает должным образом и очень медленный.
SELECT *
FROM (SELECT DISTINCT ext, phneNumber, duration FROM transactions) t
WHERE t.duration IN ( SELECT TOP 5 duration
FROM transactions
WHERE t.ext = ext
ORDER BY duration desc);