Главная страница
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.012 c
15-1195932949
lookin
2007-11-24 22:35
2007.12.23
Наконец-то вопрос по теме сайта))


4-1180950245
TCrash
2007-06-04 13:44
2007.12.23
Сообщение WM_USER_PREPARE_TO_CLOSE


1-1191498439
Kerk
2007-10-04 15:47
2007.12.23
Количество бит в байте


2-1196249636
Alex_C
2007-11-28 14:33
2007.12.23
Вопрос по Canvas.TextOut


1-1191473176
Алик_Е
2007-10-04 08:46
2007.12.23
Колонки, отделенные Tab