|
|
|
двойной запрос(новичек)
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Есть таблица на 400тыс. строк id | uniq_id | type | time 1 | qweqwe| 1 | 1469128536 2 | asdasd | 1 | 1469128537 3 | qweqwe | 2 |1469128538 4 | zxczxc | 1 | 1469128539 5 | asdasd | 2 | 1469128540 ... Необходимо сделать выборку всех записей во временном интервале c id 1 SELECT * FROM table WHERE type = 1 AND time BETWEEN 1469128536 AND 1469128538 А после найти все записи с предыдущей выборки и получить поле time с id = 2,те например нам вернули уники qweqwe и asdasd. Далее выполняем поиск, но уже не учитывая временные рамки: SELECT * FROM table WHERE type = 1 AND uniq_id LIKE 'qweqwe'; и тд Необходимо получить разность поля time строк с одинаковыми uniq_id, где в одном случае id = 1, а во втором id = 2. После суммировать все полученные разности и разделить на кол-во уникальных записей, которые участвовали в запросах. На данный момент я делаю это в 2 этапа через php и циклы, что само по себе сильно затратно и обрабатывается довольно долго. Подскажите, можно ли как-нибудь эту задачу решить в 1 запросе, как вариант через процедуру? Иначе говоря надо вычислить среднее значение времени, как долго запись с id 1 становиться записью с id 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 22:29 |
|
||
|
двойной запрос(новичек)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 05:10 |
|
||
|
двойной запрос(новичек)
|
|||
|---|---|---|---|
|
#18+
Спасибо) Однако по времени выяснилось, что способ всего немного быстрее. Буду работать над оптимизацией таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39278251&tid=1831556]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 505ms |

| 0 / 0 |
