Sql 每小时的样本限值
如何从查询中的每个小时进行查询?我想每小时采样5条记录,但我不确定如何做到这一点。我知道我可以通过硬编码小时手动完成,但我想通过一个查询完成。输出将类似于Sql 每小时的样本限值,sql,postgresql,Sql,Postgresql,如何从查询中的每个小时进行查询?我想每小时采样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 这
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;
您可以使用行号:
我不确定年、月、日栏与你的问题有什么关系。它们不是样本数据的一部分。如果您只需要一天,请在查询中使用where子句。对于此类问题,请在问题中包含表格定义。
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;