Предел выборки за каждый час - PullRequest
0 голосов
/ 22 мая 2018

Как я могу запросить от каждого HOUR в моем запросе?Я хочу попробовать 5 записей в каждой HOUR, но я не уверен, как это сделать.Я знаю, что могу сделать это вручную путем жесткого кодирования, но я хочу сделать это одним запросом.Вывод будет что-то вроде

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;

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете использовать 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, как в запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...