计算Hive中每个组中的条目数

时间:2017-01-25 05:40:40

标签: hive bigdata

我的数据库看起来像这样,代表客户在某个商店进行的购买:

Customer ID | Store ID | Date & Time
1 | 1884 | 2016-10-30 13:00:00
5 | 2001 | 2016-10-30 13:00:00

数据集非常大。时间间隔为1小时。

我需要计算在一天中的每个小时内有多少客户购买。返回的数据应如下所示:

Store ID | Unique Date & Time | Number of purchases 
1884 | 2016-10-30 13:00:00 | 8
1884 | 2016-10-30 14:00:00 | 12

我没有想法,也很感激我能得到的任何帮助。

2 个答案:

答案 0 :(得分:1)

选择ID并将其分组为小时和日。

SELECT [ Store ID ], count(*)
FROM table1
GROUP BY DATEPART(day, [ Date & Time]), DATEPART(hour, [ Date & Time]);

答案 1 :(得分:0)

我假设此查询将每小时运行一次,并且生成的数据将附加到现有数据集

以下查询将为您提供客户在[日期和时间]在特定商店中进行的购买计数

select [Date and Time],[Store ID],count(customer id) 
from [tablename] group by [Date and Time],[Store ID] 
order by [Date and Time] DESC

如果您希望得到每小时所有购买的完整统计数,无论商店ID如何,那么您可以试试这个:

select [Date and Time],count(customer id) 
from [tablename]  group by [Date and Time] 
order by [Date and Time] DESC

desc命令用于获取最新的时间戳结果