スキーマ:
SubscriberId NewsletterIdCsv
------------ ---------------
1 48,51,94
2 43,22
3 33,11
4 90,61
各行 NewsletterIdCsv のカウントを取得し、それらをすべて追加して、すべての行の合計数を取得する必要があります。基本的な行カウントについては、次のことを行っています。
SELECT newsletteridcsv, len(newsletteridcsv) - len(replace(newsletteridcsv, ',', '')) +1 IndividualCount
FROM DBTABLE
これは私に結果を与えます:
NewsletterIdCsv IndividualCount
------------ ---------------
48,51,94 3
43,22 2
33,11 2
90,61 2
合計数を取得するにはどうすればよいですか (この例では 9)?
注:このテーブルには500万のレコードがあり、一時テーブルを使用してカウントを挿入し、最終的に一時テーブルの行を調べてカウントを累積することは最適化された方法だとは思いませんか? また、効率の問題でカーソルを使用することに完全に反対しています。
合計数を取得する最良の方法は何ですか?