初めて店舗を訪れた顧客 [Patient_ID として別名] の月別 (および年別) の内訳を特定する必要があります。来店日時は、テーブルの[MDT Review Date]列に格納されます。
顧客は年間を通じて複数回来店し、合計数を増やすことができます->しかし、私が必要とするのは、顧客が最初に訪れたときだけです.
たとえば、Tom Bombadil が 2019 年 1 月に 1 回来店したため、カウントが 1 に増加し、3 月には 4 回になりました。したがって、カウントは 3 月に 1、2 月に 0、1 月に 1、そして 10 月に 4 回となるはずです。その後、12 月に 2 回。Tom Bombadil を特定の月に 1 回だけ
カウントする必要があります。彼の最初の出現は 1 か月あたりでした。出力は次のようになります。
rn1 YEAR Month_Number Month Total_Count
1 2010 6 June 2
1 2010 7 July 1
1 2010 8 August 5
1 2010 10 October 5
1 2010 11 November 3
1 2011 1 January 4
1 2011 2 February 6
1 2011 4 April 7
1 2011 5 May 4
1 2011 6 June 10
1 2011 7 July 10
1 2011 8 August 14
1 2011 9 September 4
1 2011 10 October 8
1 2011 11 November 11
1 2011 12 December 11
1 2012 1 January 8
1 2012 2 February 21
私の質問を参照してください。私が持っているのは、ウィンドウ機能を使用して、COUNT
月ごとの来店数をカウントしようとしています。次に、ROW_NUMBER
関数は各訪問に一意の番号を割り当てようとします。私は何を間違っていますか?
select
*
from
(select distinct
row_number() over (partition by p.Patient_ID, p.PAT_Forename1, p.PAT_Surname
order by PAT_Forename1, p.Patient_ID, PAT_Surname) AS rn1,
datepart(year, [DATE_COLUMN]) as YEAR,
datepart(month, [DATE_COLUMN]) as Month_Number,
datename(month,[DATE_COLUMN]) as Month,
count(p.Patient_ID) over (partition by datepart(year,[DATE_COLUMN]),
datename(month, [DATE_COLUMN])) as Total_Count
from
Tablename m
inner join
TableName p on m.PK_ID = p.PK_ID
) as temp
where
rn1 = 1