powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Group by max value
11 сообщений из 11, страница 1 из 1
Group by max value
    #39637863
i-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица юзеров. Так получилось что в ней есть юзеры с одинаковым email. Мне надо выбрать всех уникальных (по email) юзеров с максимальной датой регистрации (последнего зарегистрированного). Я пытался это сделать вот так:

Код: sql
1.
2.
3.
select id, email, created_at as created_at 
from (select * from users order by created_at desc)
group by email



Это работает, но во первых мне надо сделать из этого вьюху (данных много - так будет удобнее, у меня все на вьюхах). Я сделал вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create view ordered_users as
select * from users order by created_at desc;

create view unique_users as
select * from ordered_users group by email;

select id, email, from_unixtime(created_at) as created_at 
from unique_users



Но это уже почему-то не работает (выбирает первого, а не третьего), хотя код выборки фактически тот же.

Во вторых мне надо еще одно условие добавить: в первую очередь забирать активных юзеров (по флагу is_active), а уже во вторую по дате (но если останутся только неактивные то должен выбраться все-равно один с максимальной датой). И тут я уже не знаю как сделать совсем...

Вот этот пример на sqlfiddle . Помогите пожалуйста!
...
Рейтинг: 0 / 0
Group by max value
    #39637866
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Group by max value
    #39637867
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i-SQLмне надо еще одно условие добавить: в первую очередь забирать активных юзеров (по флагу is_active), а уже во вторую по дате (но если останутся только неактивные то должен выбраться все-равно один с максимальной датой).Элементарно, Ватсон. Просто сортировать группу надо по
Код: sql
1.
ORDER BY is_active /* DESC */, created_at DESC
...
Рейтинг: 0 / 0
Group by max value
    #39637868
i-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina FAQ: Выборка первой/последней записи в группах
В этой теме нет решения моей проблемы
...
Рейтинг: 0 / 0
Group by max value
    #39637870
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этой теме ЕСТЬ решение описанной проблемы. Если Вы его не видите - попробуйте перечитать ещё раз.
...
Рейтинг: 0 / 0
Group by max value
    #39637871
i-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akinai-SQLмне надо еще одно условие добавить: в первую очередь забирать активных юзеров (по флагу is_active), а уже во вторую по дате (но если останутся только неактивные то должен выбраться все-равно один с максимальной датой).Элементарно, Ватсон. Просто сортировать группу надо по
Код: sql
1.
ORDER BY is_active /* DESC */, created_at DESC


Кажется по этому вопросу это и правда решение, спасибо! Но почему же со вьюхами у меня это не работает? :( Просто все время выбирается первый юзер наплевав на все сортировки и группировки...
...
Рейтинг: 0 / 0
Group by max value
    #39637872
i-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaВ этой теме ЕСТЬ решение описанной проблемы. Если Вы его не видите - попробуйте перечитать ещё раз.

По факту я уже все решил (ну с условием вы еще помогли). А про вьюхи там нет ни слова!!! (поиском по странице слово view не находит)
...
Рейтинг: 0 / 0
Group by max value
    #39637876
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i-SQLпро вьюхи там нет ни слова!!!
Судя по тексту, Вы представления создавать умеете. Так что я не понимаю, какие в ЭТОМ моменте могли возникнуть сложности - не припоминаю ограничений, которые не позволяли бы преобразовать запрос в представление...
...
Рейтинг: 0 / 0
Group by max value
    #39637879
i-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот два абсолютно одинаковых примера: один обычным запросом , другой на вьюхах (две вьюхи потому что в них подзапросы нельзя делать). Первый работает верно, второй нет... В чем проблема? :(
...
Рейтинг: 0 / 0
Group by max value
    #39638061
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топик почистил.
Прошу всех, особенно топикстартера, общаться поспокойнее.

По технической части вопроса посмотрю вечером.
...
Рейтинг: 0 / 0
Group by max value
    #39638073
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i-SQLВот два абсолютно одинаковых примераПримеры совершенно разные. В них разная логика. Плюс непонимание расширения стандарта сервером в части partial group by.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Group by max value
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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