Мне нужно получить определенные отслеживаемые данные, включая пару макс. И мин. У меня уже есть ужасный способ сделать это ниже, но, как вы знаете, это ДЕЙСТВИТЕЛЬНО медленно, потому что я использую подзапросы, а таблица содержит пару тысяч строк. В частности, мне нужно получить разные значения MAX для каждой строки, в зависимости от type_dev текущей строки. с 24000 записей это становится непригодным для использования, и я думаю, что это даже медленнее, когда я пытаюсь вместо этого использовать предложения MAX.
SELECT dt.some_data, dt.date_visit, dt.url,
(SELECT date_visit FROM device_tracker
WHERE type_dev = dt.type_dev ORDER BY date_visit DESC LIMIT 1) last_visit,
(SELECT date_visit FROM device_tracker
WHERE type_dev = dt.type_dev and url = dt.url ORDER BY date_visit DESC LIMIT 1) last_visit_to_this_url
FROM device_tracker dt WHERE some_where_clauses;
Обратите внимание, что мне не нужны глобальные максимальные значения (это может быть действительно легко), но, например, в этом случае я получаю максимальную дату каждого отдельного type_dev (каждая строка может иметь свой тип или нет) а также максимальная дата определенного URL для каждой строки.
Мне нужно то же самое с минимальными датами.
Конечно, есть много хороших способов сделать это. Может ли кто-нибудь пролить свет на это?