Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Получение последних данных на дату (Colobon) 06/01/2009 - 17:11:50
      Re: Получение последних данных на дату (Colobon) 06/01/2009 - 17:13:14
      Re: Получение последних данных на дату (Dark123us) 13/01/2009 - 15:27:44

> Original message text:
> From: Colobon - 06/01/2009 - 17:11:50
> Subject:Получение последних данных на дату
> -----------------
> Добрый день!
> Возможно такой вопрос задавался, ток я не придумал какой вопрос поиску задать...
>
> В общем есть таблица
>
> Table: actions
> Fields:
> login int,
> a_date date,
> a_time time,
> action varchar(20)
>
> Таблица содержит действия, которые выполнил пользователь с сохранением даты и времени действия.
>
> Нужно получить по всем логинам последние действия, которые они выполнили к скажем 05.01.2009. Нужно помнить, что у некоторых логинов поледнее действие может быть еще в декабре например.
>
> У меня получился такой запрос:
> SELECT a.action, a.login
> FROM actions AS a
> INNER JOIN (
> SELECT MAX(a_for_time._time) AS _time, a_for_date._date, a_for_time.login
> FROM actions AS a_for_time
> INNER JOIN (
> SELECT MAX(_date) as _date, login
> FROM actions
> WHERE _date <= '2009-01-05'
> GROUP BY login
> ) AS a_for_date ON a_for_date._date = a_for_time._date
> WHERE a_for_date.login = a_for_time.login
> GROUP BY a_for_time.login
> ) AS a_global ON a_global._date = a._date
> WHERE a_global._time = a._date
> AND a_global.login = a.login
>
> Но учитывая что в таблице actions записей порядка 6 миллионов, он выполняется чрезвычайно долго.
>
> Может быть есть более простой способ получить желаемое?
>
>


From: Dark123us - 13/01/2009 - 15:27:44
Subject:Получение последних данных на дату
-----------------
Может так
SELECT login, max(a_date), max(a_time), action FROM test2 GROUP BY login


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
34846



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |