У меня есть таблица в MySQL:MySQL - Среднее значение% от последнего дня вставках
+-----------------+-------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------------------+-------+
| period_duration | datetime | NO | PRI | 0000-00-00 00:00:00 | |
| duration | varchar(6) | YES | | NULL | |
| sample | varchar(2) | YES | | NULL | |
| corner | varchar(10) | YES | | NULL | |
| country | varchar(60) | NO | PRI | | |
| roaming_partner | varchar(60) | NO | PRI | | |
| pdp_in_total | int(8) | YES | | NULL | |
| pdp_in_ok | int(8) | YES | | NULL | |
| pdp_in_not_ok | int(8) | YES | | NULL | |
| pdp_in_ok_rate | int(8) | YES | | NULL | |
+-----------------+-------------+------+-----+---------------------+-------+
Эта таблица содержит новые вставки ежечасно, что делает много различных period_duration
на roaming_partner
:
+---------------------+----------+--------+----------+---------+-----------------------+--------------+-----------+---------------+----------------+
| period_duration | duration | sample | corner | country | roaming_partner | pdp_in_total | pdp_in_ok | pdp_in_not_ok | pdp_in_ok_rate |
+---------------------+----------+--------+----------+---------+-----------------------+--------------+-----------+---------------+----------------+
| 2014-12-16 14:00:00 | 3600 | 1 | GPRS_OUT | USA | Operator1 | 796 | 787 | 9 | 99 |
| 2014-12-16 15:00:00 | 3600 | 1 | GPRS_OUT | USA | Operator1 | 1748 | 1706 | 42 | 98 |
| 2014-12-16 16:00:00 | 3600 | 1 | GPRS_OUT | USA | Operator1 | 7 | 7 | 0 | 100 |
«ok_rate» - процентная ставка.
Мне нужно создать SELECT
, который будет отображаться каждый country
, roaming_partner
и pdp_in_ok_rate
из последних 24 вставок, со средним pdp_in_ok_rate
% от этих вставок.
Это похоже на то, что я хотел, чтобы мой запрос SQL сказал: «Это средний pdp_in_ok_rate в последних 24 вставках для каждого оператора на вашем столе. Не во всей таблице, а из этих последних».
Может кто-нибудь, пожалуйста, помогите мне?
Средние средние значения не имеют смысла. если одна запись имеет 1000 вставок успешно и 100% среднее значение, а другая запись имеет 2 вставки, из которых одна вставка не удалась, тогда у вас есть avg (100%, 50%) = 75%, а не 1001/1002 = 99,9% успешны. –
Я использую это для поддержания ежедневных средних значений для целей сетевого мониторинга. Если я использую вашу логику, после заданного большого количества 100% s, каждый низкий процент пройдет мимо незамеченным ... Мне нужно увидеть средние значения на основе ежедневной логики. – ZeldaElf
Может быть неуместным, но вот [другой вопрос того же автора] (http://stackoverflow.com/questions/27494394/mysql-select-to-retrieve-last-datetime). –