[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SQL выбор определенного значения или первое вхожде
Страницы: 1, 2
AllesKlar
Цитата (S.Chushkin @ 29.03.2017 - 09:25)
Т.е. ТС неправ, утверждая, что "Но, невозможно отсортировать по полю title т.к. имеем агрегатную функцию" ?


При таком запросе
select DISTINCT on (o.object_id) o.object_id, o.title
from objects o
order by o.object_id, o.title
сортировка идет по o.object_idю Вторая сортировка по o.title уже бессмыслена, т.к. DISTINCT on (o.object_id) o.object_id удалит все дубликаты.

Я дал DDL, дал INSERT запрос, пробуй.

Цитата (S.Chushkin @ 29.03.2017 - 08:37)
Это не ответ.
Хочешь помощи или дискуссии, будь добр - заинтересуй.
:) как мило


_____________
[продано копирайтерам]
S.Chushkin
Хозяин - барин...

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
AllesKlar
Цитата (sergeiss)
Во-первых, давай все-таки насчет условий задачи определимся  В то числе с тем, насколько часто меняются данные в исходной таблице.


Не меняются, но добавляются. Со скоростью, примерно 100 штук в минуту.
Цитата (sergeiss @ 29.03.2017 - 05:48)
Во-вторых, есть ли ограничения на объекты (их список) или вообще среди всех искать надо?

Да, конечно, есть object_class, object_type, user_id
У самого жирного клиента, примерно по 1.000.000 объектов каждого класса

Задача:
есть таблица video (видео)
есть таблица asset (картинки и все прочее, что не видео и не подлжеит перекодированию)

Клиент отправляет запрос к API, должны вернуться все объекты (класса video и asset) с определенными условиями и отсортированы по определенному полю (дата, имя файла, размер файла и т.д. метаданные)
Для целей пагинации введены еще два параметра limit и offset
Но они вступают в бой только после корректной сортировки результата.
Метаданные раскиданы по разным таблицам.
Запросы сбора метаданных были очень тяжелые, а с учетом, что (по историчесчким причинам) существует две главных таблицы (video и asset), то приходилось общий список запрашивать с UNION, и тут вообще sort by, limit и offset вместе не работают.

Поэтому была придумана денормализованная таблица objects, которая заполняется тригерами из главных таблиц и таблиц метаданных.

как-то так smile.gif

_____________
[продано копирайтерам]
T1grOK
Проще было бы скормить тому же sphinx и обновлять по дельте.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
AllesKlar
Цитата (T1grOK @ 29.03.2017 - 17:24)
Проще было бы скормить тому же sphinx и обновлять по дельте.

Вот поэтому и есть проект-менеджеры, которые следят за разработчиками.
Потому что, если за разработчиками не следить, то в один прекрасный момент, проект перестанет приносить прибыль, т.к. все разрабы заигрались в рефакторинг smile.gif
Я даже боюсь представить реакцию генерального, на предложение вместо одного SQL запроса, для всего лишь одного конкретного метода API, установить sphinx wink.gif

Хотя, в глобальном смысле, идея интересная, можно подумать.

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.