powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите пожалуйста составить правильный запрос
9 сообщений из 9, страница 1 из 1
Помогите пожалуйста составить правильный запрос
    #39751044
seometis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица вида:
Код: sql
1.
2.
3.
4.
`id` INT(11) NOT NULL AUTO_INCREMENT,
`click_id` INT(11) NOT NULL,
`value_id` INT(11) NOT NULL,
`name_id` INT(11) NOT NULL



из которой нужно максимально ресурсоэффективно создать сводную таблицу с уникальными значениями по полю 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

Подскажите плиз гуманитарию :)
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751051
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А гуманитарий знает точную версию MySQL-сервера? потому как для версии 5+ и для версии 8+ решения будут ну очень различаться.
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751052
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати. А ежели один и тот же click_id есть и у юзера 1, и у юзера 2 (в примере таких данных нет, но вряд ли они запрещены на уровне структуры таблицы), то на выходе будет одна запись (для того юзера, у кого id больше) или две (по записи для каждого юзера)?
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751080
seometis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
click_id подразумевает уникального пользователя за 24 часа. А при повтоных заходах мы получаем дополнительные строки с этим пользователем (с тем же кликайди), но видим разные варианты страницы, т.е. value_id. Некоторые страницы не являются транзитными, что как раз и описывает область допустимых значений в name_id.

Т.е. задача как раз в том, чтобы взять данные из его последнего посещения. SQL версии 5.7.23-24 - Percona Server
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751126
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751191
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaseometisSQL версии 5.7.23-24Тогда только подзапросом или на переменных.
А как на 8ке это можно сделать более эффективно?
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751214
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В восьмёрке есть оконные функции. Так что просто FIRST_VALUE(PARTITION BY click_id ORDER BY id DESC) .
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751222
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaВ восьмёрке есть оконные функции. Так что просто FIRST_VALUE(PARTITION BY click_id ORDER BY id DESC) .
Ух ты! Спасибо.
...
Рейтинг: 0 / 0
Помогите пожалуйста составить правильный запрос
    #39751226
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
seometisнужно максимально ресурсоэффективно создать сводную таблицу
Максимально ресурсноэффективно - это практическая задачи, или самоцель?
Попробуйте обычным способом нарисовать запрос с подзапросом и посмотрите результат. Вполне возможно, вас это устроит. Следующий инсерт способен нивелировать все потуги по оптимизации селекта.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите пожалуйста составить правильный запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]