Сортировка по максимальному значению (mySQL)

Prolix

Новичок
Сортировка по максимальному значению (mySQL)

Есть таблица

posts (
poster_id int(10) DEFAULT '0' NOT NULL,
post_time datetime NOT NULL
);

нужно выбрать неповторяющиеся ID юзеров, у которых максимальная дата post_time меньше чем, к примеру, 2002-03-01.

Такой вариант:
select poster_id,max(post_time) as m from posts group by poster_id order by m desc;

выдает список юзеров и максимальную дату вообще.

Такой вариант (по логике вещей):
select poster_id,max(post_time) as m from posts where max(post_time)<'2002-03-01' group by poster_id order by m desc;

не работает :(

mySQL 3.23.46, заранее благодарен.
 

Demiurg

Guest
Re: Сортировка по максимальному значению (mySQL)

Автор оригинала: Prolix
Есть таблица
posts (
poster_id int(10) DEFAULT '0' NOT NULL,
post_time datetime NOT NULL
);
нужно выбрать неповторяющиеся ID юзеров, у которых максимальная дата post_time меньше чем, к примеру, 2002-03-01.
Такой вариант:
select poster_id,max(post_time) as m from posts group by poster_id order by m desc;
выдает список юзеров и максимальную дату вообще.
Такой вариант (по логике вещей):
select poster_id,max(post_time) as m from posts where max(post_time)<'2002-03-01' group by poster_id order by m desc;
не работает :(
mySQL 3.23.46, заранее благодарен.
select poster_id,max(post_time) as m from posts where post_time<'2002-03-01' group by poster_id order by m desc;
 

Prolix

Новичок
Re: Re: Сортировка по максимальному значению (mySQL)

Этот вариант тоже, к сожалению, не работает: вначале mySQL выбирает все, что меньше этой даты, и потом уже выбирает максимальную дату из полученного. Тем временем, реальная максимальная дата может быть больше, но юзер, тем не менее, будет выбран :(
 

Demiurg

Guest
Re: Re: Re: Сортировка по максимальному значению (mySQL)

Автор оригинала: Prolix
Этот вариант тоже, к сожалению, не работает: вначале mySQL выбирает все, что меньше этой даты, и потом уже выбирает максимальную дату из полученного. Тем временем, реальная максимальная дата может быть больше, но юзер, тем не менее, будет выбран :(
Блин ... я понял что надо ..
select poster_id,max(post_time) as m from posts group by poster_id having m < '2002-03-01';
 

Prolix

Новичок
Re: Re: Re: Re: Сортировка по максимальному значению (mySQL)

То, что надо! Большое спасибо!

(P.S. Про having даже не знал - почитал тут, солидная, оказывается, вещь!)
 
Сверху