これは、特定の月の最終日に関するものではありません。
CAGR比(複合年間(月)成長率)を計算しようとしています。したがって、最後に入力された日付では、特定の月に常に最大の値があり、値が増加するだけです。
ただし、ユーザーが毎日(月末日を含む)入力しない可能性があります。したがって、特定の月にユーザーが最後に入力した日付を知る必要があります。
添付画像をご参照ください。
私は常に、stackoverflow の人々の卓越性に満足しています! どうもありがとう !
SELECT top(1) *
FROM table
WHERE dt >= 01/02/2016
AND dt <= 29/02/2016
ORDER BY value DESC
SQL Server の構文は次のとおりです。
WITH
CTE
AS
(
SELECT
dt
,Value
,ROW_NUMBER()
OVER (PARTITION BY DATEDIFF(month, '2001-01-01', dt) ORDER BY dt desc) AS rn
FROM YourTable
)
SELECT
dt
,Value
FROM CTE
WHERE rn = 1
;
一般的には、top-n-per-group
またはを参照してくださいgreatest-n-per-group
。
他のバリアントの詳細な回答については、https ://dba.stackexchange.com/questions/86415/retriving-n-rows-per-group を参照してください。