Я пытаюсь рассчитать и перечислить сайты в порядке наибольшего общего снижения времени отклика с одного периода на другой.SQL: Наибольшее процентное изменение во время действия ответа
Мне не нужно использовать один запрос для этого, я могу потенциально запустить несколько запросов.
сайты:
| id | url |
| 1 | stackoverflow.com |
| 2 | serverfault.com |
| 3 | stackexchange.com |
ответы:
| id | website_id | response_time | created_at |
| 1 | 1 | 93.26 | 2014-01-28 11:51:39
| 2 | 1 | 99.46 | 2014-01-28 11:52:38
| 2 | 1 | 94.51 | 2014-01-28 11:53:38
| 2 | 1 | 104.46 | 2014-01-28 11:54:38
| 2 | 1 | 85.46 | 2014-01-28 11:56:38
| 2 | 1 | 100.00 | 2014-01-28 11:57:36
| 2 | 1 | 50.00 | 2014-01-28 11:58:37
| 2 | 2 | 100.00 | 2014-01-28 11:58:38
| 2 | 2 | 80 | 2014-01-28 11:58:39
В идеале результат будет выглядеть следующим образом:
| percentage_change | website_id |
| 52 | 1 |
| 20 | 2 |
я получил, насколько выяснить, наибольшее время отклика, но не знаю, как выполнить другой запрос, чтобы вычислить самое низкое время отклика, а затем выполнить математику, а затем отсортировать математику s.
SELECT * FROM websites
LEFT JOIN (
SELECT distinct *
FROM responses
ORDER BY response_time desc) responsetable
ON websites.id=responsetable.website_id group by website_id
Благодаря
А как вы определяя самое большое изменение в время отклика? –
«Время отклика от одного периода до следующего» означает разницу между последовательными запросами или в течение определенного периода времени? Не должен ли результат для site_id = 1 в вашем примере быть 100 - ((50/104.46) * 100) = 52%? –
@michalkralik Я думаю, я имею в виду, отличие от первого записанного образца до сих пор. Да, обновит образец ответа. – Tom