У меня есть таблица базы данных, которая выглядит следующим образомSQL Server 2008, ограничить row_number() над (partiton по)
customer type || transaction date || amount
a || June 27 2016 || $10
Я хотел бы добавить заказ номер строки по дате сделки секционированной по типу клиента ,
select
customertype,
row_number() over(partition by customertype order by transactiondate desc) as 'rowNum'
from
myDB
Одна из проблем, с запросом, что я получаю это:
customer type || transaction date || amount || rowNum
A || Jan 1 2016 || $20 || 1
A || Jan 1 2016 || $40 || 2
Проблема заключается в том, я не хочу, чтобы назначить различные rowNum
для различных количеств. Обе строки должны иметь rowNum = 1 независимо от суммы.
Еще одна проблема заключается в том, что я хотел бы показать последние три транзакции. Я знаю один способ добавить номер строки для каждой транзакции, но мой db содержит данные с 1990-х годов. Он слишком большой.
Итак, я хочу ограничить поиск самыми последними 3 транзакциями без внешнего запроса.
Моя идея состоит в том, что у меня нет такого количества клиентов, поэтому, возможно, я смогу отслеживать 3 прошлых транзакции для каждого типа customertype, который, я считаю, намного легче.
Спасибо!
для 2, нет, я не могу предположить, что последние 3 транзакции были сделаны за последние 30 дней. Это может быть почти 5 лет назад. Я действительно не могу использовать временной интервал в sql. – Nayana
Таким образом, нет никакой вероятности, что ваша база данных слишком велика, чтобы запросить полную историю. –