用于查找每个唯一时间戳的总和的sql

时间:2013-02-20 20:22:22

标签: sql join timestamp sum max

不幸的是,我已经离开数据库游戏差不多2年了,所以我已经失去了一些知识,并试图让它恢复。

我需要获得A列中具有等效时间戳(B列)的所有行的总数。

所以,例如,如果这是我的数据库:

site   |  products |      sell_time
tokyo  |  12       | 2013-02-19 00:01:00
tokyo  |  17       | 2013-02-19 00:01:00
nyc    |  10       | 2013-02-19 00:01:00
dallas |   3       | 2013-02-19 00:02:00
tokyo  |  32       | 2013-02-19 00:03:00
tokyo  |   3       | 2013-02-19 00:03:00
nyc    |  10       | 2013-02-19 00:04:00

我想知道东京每个时间戳的记录,我想看看

site   | num_products |   sell_time
tokyo  | 29           | 2013-02-19 00:01:00
tokyo  | 35           | 2013-02-19 00:03:00

感谢任何帮助。在谈到这一点时,我已经失去了优势,现在我必须把它拿回来。

2 个答案:

答案 0 :(得分:2)

您需要使用带GROUP BY的聚合函数:

select site,
  sum(products) num_products,
  sell_time
from yourtable
where site = 'tokyo'
group by site, sell_time

请参阅SQL Fiddle with Demo

答案 1 :(得分:1)

喜欢这个吗?

SELECT site, SUM(products), sell_time
FROM yourTable
WHERE site = 'tokyo'
GROUP BY sell_time

在MySQL中,上述应该可行。在SQL Server中,您需要将site添加到GROUP BY,或在MAX(site)中添加SELECT之类的内容。