|
|
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
Есть таблица вида: Код: sql 1. 2. 3. 4. из которой нужно максимально ресурсоэффективно создать сводную таблицу с уникальными значениями по полю click_id таким образом, чтобы в value_id попало значение, из строки с самым большим id, относящимся к данному click_id при этом только из допустимых значений name_id Например, допустимыми значениями для name_id возьмём 1 и 2: Исходная таблица id click_id value_id name_id1 1 2 12 2 3 13 1 4 14 3 5 25 3 7 36 4 8 27 5 9 38 2 6 19 6 7 3 Конечная таблица: id click_id value_id name_id3 1 4 14 3 5 26 4 8 28 2 6 1 Подскажите плиз гуманитарию :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2018, 20:14 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
А гуманитарий знает точную версию MySQL-сервера? потому как для версии 5+ и для версии 8+ решения будут ну очень различаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2018, 21:05 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
Кстати. А ежели один и тот же click_id есть и у юзера 1, и у юзера 2 (в примере таких данных нет, но вряд ли они запрещены на уровне структуры таблицы), то на выходе будет одна запись (для того юзера, у кого id больше) или две (по записи для каждого юзера)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2018, 21:07 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
click_id подразумевает уникального пользователя за 24 часа. А при повтоных заходах мы получаем дополнительные строки с этим пользователем (с тем же кликайди), но видим разные варианты страницы, т.е. value_id. Некоторые страницы не являются транзитными, что как раз и описывает область допустимых значений в name_id. Т.е. задача как раз в том, чтобы взять данные из его последнего посещения. SQL версии 5.7.23-24 - Percona Server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2018, 23:18 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
seometisSQL версии 5.7.23-24Тогда только подзапросом или на переменных. См. FAQ: Нумерация строк и другие вопросы про использование переменных и FAQ: Выборка первой/последней записи в группах . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 07:42 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
AkinaseometisSQL версии 5.7.23-24Тогда только подзапросом или на переменных. А как на 8ке это можно сделать более эффективно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 10:46 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
В восьмёрке есть оконные функции. Так что просто FIRST_VALUE(PARTITION BY click_id ORDER BY id DESC) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 11:41 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
AkinaВ восьмёрке есть оконные функции. Так что просто FIRST_VALUE(PARTITION BY click_id ORDER BY id DESC) . Ух ты! Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 11:54 |
|
||
|
Помогите пожалуйста составить правильный запрос
|
|||
|---|---|---|---|
|
#18+
seometisнужно максимально ресурсоэффективно создать сводную таблицу Максимально ресурсноэффективно - это практическая задачи, или самоцель? Попробуйте обычным способом нарисовать запрос с подзапросом и посмотрите результат. Вполне возможно, вас это устроит. Следующий инсерт способен нивелировать все потуги по оптимизации селекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 11:59 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39751226&tid=1829400]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 139ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...