mySQL - получает min, max и свойство строки, содержащей max - PullRequest
0 голосов
/ 10 ноября 2011

Мне нужно получить три поля из таблицы.В таблице есть поля - id, timestamp, viewTime.Мне нужно получить min (отметка времени), max (отметка времени), viewTime записи с max (отметка времени).Я предпочел бы иметь только один запрос.

SELECT MAX(timestamp), 
       MIN(timestamp), 
       viewTime 
  FROM session_progress 
 WHERE session_id = 2374;

Этот запрос возвращает min, max правильно, но возвращает минимальный viewTime.То, что я действительно хочу, это viewTime записи, которая имеет максимальную метку времени.

Пример:

  timestamp             viewTime 
  ----------------------------------
  2011-11-05 10:21:00          1055
  2011-11-06 15:00:00          8900
  2011-11-07 18:20:00           750
  2011-11-07 19:23:00          4200

Запрос возвращает viewTime 750, но мне нужно максимальное значение viewTime, равное 4200.

Если ответ написан в граалях,даже лучше (это так же, как SQL-запрос выше):

def sp_res = sp.get {
            projections {
                min("timestamp")
                max("timestamp")
                totalTime
            }
            and {
                eq("sessionId", unSession.id)
            }
        }

1 Ответ

1 голос
/ 10 ноября 2011
select b.maxT, b.minT, viewTime 
from session_progress,

(select max(timestamp) as maxT, min(timestamp) as minT
from session_progress 
where session_id=2374 ) b

where where session_id=2374 AND timestamp = b.maxT

Это просто идея, хотя я ее не проверял. Простите за любые ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...