Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.029 c
15-1195736070
Кот
2007-11-22 15:54
2007.12.23
css меню


15-1195840259
me
2007-11-23 20:50
2007.12.23
Найти исполнителя песни


15-1195712208
NX
2007-11-22 09:16
2007.12.23
выручайте! какой загрузчик у висты


15-1195657961
oldman
2007-11-21 18:12
2007.12.23
Оказывается, вчера был Международный день ребенка


2-1196417567
Pacific
2007-11-30 13:12
2007.12.23
Как