Как получить последние 3 записи каждой группы из базы данных dolphindb? - PullRequest
0 голосов
/ 28 февраля 2020

Моя таблица называется trades, а ее столбцы: permno, символ, дата, pr c, shrout, ret, vol. Я хочу получить последние 3 записи каждой акции каждой группы дат. Поддерживает ли DolphinDB такие методы запросов?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

В DolphinDB use можно использовать выражение context-by для решения подобных проблем. Для вашего вопроса используйте код ниже:

select * from trades context by symbol, date limit -3

Отрицательное значение -3 для предложения limit указывает системе получить последние 3 записи для каждой комбинации символа и даты.

0 голосов
/ 28 февраля 2020
    declare @trades as table
    (
    permno int,
    symbol int,
groupdate  date
)
insert into @trades(permno,symbol,groupdate)
values
(1,1,'2019-01-01'),
(2,2,'2019-01-01'),
(3,3,'2019-01-01'),
(4,4,'2019-01-01'),
(1,11,'2019-01-02'),
(2,22,'2019-01-02'),
(3,33,'2019-01-02'),
(4,44,'2019-01-02')

select * from(
select ROW_NUMBER() over(partition by groupdate order by groupdate)as rn,* from @trades)x
where rn <=3
...