0

不幸的是,我已经离开数据库游戏快 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

任何帮助表示赞赏。在这件事上我已经失去了优势,现在我必须把它找回来。

4

2 回答 2

2

您将需要使用具有以下功能的聚合函数GROUP BY

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

请参阅带有演示的 SQL Fiddle

于 2013-02-20T20:24:19.510 回答
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.

于 2013-02-20T20:24:04.787 回答