2016-01-20 3 views
1

Я пытаюсь сделать запрос, чтобы получить первую и последнюю временную метку каждого уникального пользователя.Выберите первую и последнюю отметку времени, когда идентификатор пользователя уникален

База данных выглядит следующим образом:

| ID | EventID |  Timestamp  | Person | Number | 
-------------------------------------------------------- 
| 1 | 2 | 2015-01-08 17:31:40 | 7 | 5 | 
| 2 | 2 | 2015-01-08 17:35:40 | 7 | 4 | 
| 3 | 2 | 2015-01-08 17:38:40 | 7 | 7 | 
-------------------------------------------------------- 

Я пытаюсь собрать запрос MySQL, который будет делать следующее:

  • SUM номер поля для каждого уникального пользователя.
  • Разница во времени (в часах) между первой и последней строками для каждого уникального пользователя. Я бы предположил, что если бы я мог получить первую и последнюю временную метку для каждого пользователя, я должен был бы использовать timediff, чтобы получить разницу во времени в часах.

То, что я получил до сих пор:

SELECT 
    person, 
    SUM(number) AS 'numbers_all_sum' 
FROM database 
WHERE eventid = 2 
GROUP BY person 
ORDER BY numbers_all_sum DESC 

Любая помощь будет принята с благодарностью.

+0

'MAX (Отметка) и' MIN (Отметка) '? – eggyal

+0

Это было, конечно, менее сложно, чем то, над чем я работал. Спасибо, это решило мою проблему. – arvesynd

ответ

0

Что-то вроде этого:

SELECT 
    Person 
    MIN(Timestamp), 
    MAX(Timestamp), 
    SUM(number) AS 'numbers_all_sum' 
FROM database 
WHERE eventid = 2 
GROUP BY person 
Смежные вопросы