0

これは、特定の月の最終日に関するものではありません。

CAGR比(複合年間(月)成長率)を計算しようとしています。したがって、最後に入力された日付では、特定の月に常に最大の値があり、値が増加するだけです。

ただし、ユーザーが毎日(月末日を含む)入力しない可能性があります。したがって、特定の月にユーザーが最後に入力した日付を知る必要があります。

添付画像をご参照ください。

ここに画像の説明を入力

私は常に、stackoverflow の人々の卓越性に満足しています! どうもありがとう !

4

2 に答える 2

1
SELECT top(1) * 
FROM table 
WHERE dt >= 01/02/2016 
    AND dt <= 29/02/2016 
ORDER BY value DESC
于 2016-02-15T02:46:22.453 に答える
1

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 を参照してください。

于 2016-02-15T02:35:15.780 に答える