如何从查询中的每个HOUR
查询?我想在每个HOUR
中抽取5条记录,但我不知道该怎么做。我知道我可以通过硬编码小时手动完成,但我想用一个查询来做。输出类似于
hour | location
00 SF
00 DC
00 VW
01 SF
01 HI
01 KK
02 JP
02 RU
02 CN
... ...
... ...
23 JK
23 ON
23 CN
这是我到目前为止所做的:
select hour, location
from db.table where
hour in ('00', '01', '02','03', '04','05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16','17', '18', '19','20', '21', '22','23')
order by hour
limit 3;
答案 0 :(得分:1)
您可以使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by year, month, day, hour order by random()) as seqnum
from db.table t
) t
where seqnum <= 5;
我不确定year
,month
和day
列与您的问题有什么关系。它们不是样本数据的一部分。如果您只想要一天,请在查询中使用where
子句。