Главная страница
    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.46 MB
Время: 0.044 c
11-1181802744
max727
2007-06-14 10:32
2007.12.23
kollistbox


2-1196172512
alll_23
2007-11-27 17:08
2007.12.23
Графический интерфейс


15-1195544557
Int23
2007-11-20 10:42
2007.12.23
Как в CorelDraw нарисовать наконечник стрелки


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


1-1190854398
FearG0
2007-09-27 04:53
2007.12.23
Адреса функций в памяти





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский