2016-01-20 120 views
1

我正在尝试执行查询以获取每个唯一用户的第一个和最后一个时间戳。选择用户ID唯一的第一个和最后一个时间戳

数据库看起来是这样的:

| 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 
相关问题