Текущий архив: 2007.12.23;
Скачать: CL | DM;
ВнизПомогите составить SQL-запрос Найти похожие ветки
← →
SerJaNT © (2007-11-24 04:30) [0]Имеется таблица:
Id | user_name | user_date
-----------------------------
1 aaaa 12.09.07
2 bbbb 11.09.07
3 bbbb 15.09.07
4 aaaa 25.09.07
5 aaaa 21.09.07
6 aaaa 13.09.07
7 cccc 13.09.07
и т.д.
user_name могут быть одинаковыми.
Нужно составить SQL-запрос, который выберет записи по последней дате для каждого user_name т.е. если записей поля user_name несколько одиннаковых, то выбрать самую новую по дате user_date и при этом сверху должны быть пользователи у которых дубликатов самих себя в поле user_name больше всех. И так в порядке убывания...
Результатом должно получиться:
Id | user_name | user_date
-----------------------------
1 aaaa 25.09.07
3 bbbb 15.09.0
7 cccc 13.09.07
СУБД - MySQL.
Делаю так:
SELECT DISTINCT user_name, user_date FROM myTable GROUP BY user_name ORDER BY user_date ASC
Но результат не тот.. Он не выводит новые записи по значению поля user_date
← →
tesseract © (2007-11-24 14:13) [1]
> должны быть пользователи у которых дубликатов самих себя
> в поле user_name больше всех.
Тут надо ввести триггер или спец поле для подсчета user_name-оф юзеров. Так проще и быстрее будет.
> Он не выводит новые записи по значению поля user_date
выводит вроде самую последнюю.
← →
jack128 © (2007-11-24 14:34) [2]Хм. ПО идее - твой запрос вообще не должен выполняться.
select user_name, max(user_date)
from my_table
group by user_name
order by user_name
← →
jack128 © (2007-11-24 14:36) [3]
> этом сверху должны быть пользователи у которых дубликатов
> самих себя в поле user_name больше всех.
не учел Тогда так:select user_name, max(user_date)
from my_table
group by user_name
order by count(*) desc
PS СУБД не мешало бы указать
← →
SerJaNT © (2007-11-24 14:41) [4]
> PS СУБД не мешало бы указать
MySQL
← →
SerJaNT © (2007-11-25 02:01) [5]
> jack128 © (24.11.07 14:36) [3]
С order by count(*) desc вообще не работает.
А без этого, все делает правильно, только не сортирует в порядке убывания по количеству дубликатов самих себя user_name
← →
SerJaNT © (2007-11-25 02:17) [6]Я вот так работает правильно
select zn_user, max(comm_date), count(*) as Cnt from cl_ph_comments
group by zn_user
order by Cnt desc
Спасибо всем!
Страницы: 1 вся ветка
Текущий архив: 2007.12.23;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.039 c