TABLE の SCHEMA / DATA :
SubscriberId NewsletterIdCsv
------------ ---------------
11 52,52,,52
この非正規化されたデータがあります。ここでは、カンマ区切りの値の数を数える必要があります。そのために、これを行っています。
SELECT SUM(len(newsletteridcsv) - len(replace(rtrim(ltrim(newsletteridcsv)), ',','')) +1) as SubscribersSubscribedtoNewsletterCount
FROM TABLE
WHERE subscriberid = 11
結果 :
SubscribersSubscribedtoNewsletterCount
--------------------------------------
4
問題は、データの一部にカンマ区切りの値の間に空白/スペースがあることです。上記のクエリを実行すると、期待される結果は 3 になります (値の 1 つが空白であるため)。クエリをチェックインして除外するにはどうすればよいですか?空白?
編集 :
データ :
SubscriberId NewsletterIdCsv
------------ ---------------
11 52,52,,52
12 22,23
各行の合計だけでなく累積合計を取得する必要があるため、この上記のデータでは、空白を除いて最終カウント、つまりこの場合は 5 が必要です。