あなたは、各klantnr
ためbesteldatum
で行を注文するrow_number()
を使用して、派生テーブル(サブクエリ)またはcommon table expressionを使用して、最新の2を返すことができます。
派生テーブルのバージョン:
select klantnr, besteldatum, DaysSinceLastOrder
from (
select klantnr, besteldatum
, DaysSinceLastOrder = datediff(day,lag(besteldatum) over (partition by klantnr order by besteldatum),besteldatum)
, rn = row_number() over (partition by klantnr order by besteldatum desc)
from bestelling
group by klantnr, besteldatum
) t
where rn = 1
common table expressionバージョン:あなたは顧客ごとに1行を、必要な場合
;with cte as (
select klantnr, besteldatum
, DaysSinceLastOrder = datediff(day,lag(besteldatum) over (partition by klantnr order by besteldatum),besteldatum)
, rn = row_number() over (partition by klantnr order by besteldatum desc)
from bestelling
group by klantnr, besteldatum
)
select klantnr, besteldatum, DaysSinceLastOrder
from cte
where rn = 1
rn = 1
が適切なフィルタです。最新の行数がn
の場合は、rn <
n + 1を使用してください。
スクリーンショットではなくクエリをここに貼り付けてください。 *今日*または他の日付までの最後の注文以来 – Mureinik
日? –