Mur*_*dvi 5 string count sql-server-2008
架构:
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中)?
注意:这个表有5百万条记录,我不认为使用临时表来插入计数然后最后通过临时表行来累积计数是一种优化方式?另外,我完全反对使用游标来提高效率!
获得总数最好的方法是什么?
您可以使用SUM它们一起添加:
SELECT SUM(len(newsletteridcsv) - len(replace(newsletteridcsv, ',', '')) +1) 
    AS TotalCount
FROM DBTABLE
既然你只是要求总数,你甚至不需要GROUP BY任何东西.
| 归档时间: | 
 | 
| 查看次数: | 10055 次 | 
| 最近记录: |