分拆统计字符串
2008-04-27 09:11
162 查看
在表tbl1中有一个字段Keywords,它是nvarchar类型,长度为1000,该字段的内容是所要分析的论文的关键字id keywords-----------------------------------------------------------1 kw1;kw2;kw32 kw2;kw33 kw3;kw1;kw4
问题1。对于在keywords字段中出现的所有关键字集合(上例中关键字集合为{kw1,kw2,kw3,kw4})中的任意一个关键字,要统计它出现的次数(也就是包含该关键字的纪录的条数),然后写到另一张表中。最后的效果就是keywords count-------------------------kw1 2kw2 2kw3 3kw4 1
问题2。在此基础上,要进行组合查询。也就是说在整个关键字集合中任意抽出两个关键字,统计它们在数据库表纪录中同时出现的次数。对于上题,最后效果要是:keywords count----------------------------------kw1;kw2 1kw1;kw3 2kw1;kw4 1kw2;kw3 2kw2;kw4 0kw3;kw4 1
--------------------------------------------------------------------------------------
--统计示例
--为统计处理专门做的序数表selecttop1000id=identity(int,1,1)into序数表fromsyscolumnsa,syscolumnsbaltertable序数表addconstraintpk_id_序数表primarykey(id)go
--示例数据createtabletbl1(idint,keywordsnvarchar(1000))inserttbl1select1,'kw1;kw2;kw3'union all select2,'kw2;kw3'union all select3,'kw3;kw1;kw4'go
--第一种统计(计数)selectkeyword=substring(a.keywords,b.id,charindex(';',a.keywords+';',b.id)-b.id) ,[count]=count(distincta.id)fromtbl1a,序数表bwhereb.id<=len(a.keywords) andsubstring(';'+a.keywords,b.id,1)=';'groupbysubstring(a.keywords,b.id,charindex(';',a.keywords+';',b.id)-b.id)go1
问题1。对于在keywords字段中出现的所有关键字集合(上例中关键字集合为{kw1,kw2,kw3,kw4})中的任意一个关键字,要统计它出现的次数(也就是包含该关键字的纪录的条数),然后写到另一张表中。最后的效果就是keywords count-------------------------kw1 2kw2 2kw3 3kw4 1
问题2。在此基础上,要进行组合查询。也就是说在整个关键字集合中任意抽出两个关键字,统计它们在数据库表纪录中同时出现的次数。对于上题,最后效果要是:keywords count----------------------------------kw1;kw2 1kw1;kw3 2kw1;kw4 1kw2;kw3 2kw2;kw4 0kw3;kw4 1
--------------------------------------------------------------------------------------
--统计示例
--为统计处理专门做的序数表selecttop1000id=identity(int,1,1)into序数表fromsyscolumnsa,syscolumnsbaltertable序数表addconstraintpk_id_序数表primarykey(id)go
--示例数据createtabletbl1(idint,keywordsnvarchar(1000))inserttbl1select1,'kw1;kw2;kw3'union all select2,'kw2;kw3'union all select3,'kw3;kw1;kw4'go
--第一种统计(计数)selectkeyword=substring(a.keywords,b.id,charindex(';',a.keywords+';',b.id)-b.id) ,[count]=count(distincta.id)fromtbl1a,序数表bwhereb.id<=len(a.keywords) andsubstring(';'+a.keywords,b.id,1)=';'groupbysubstring(a.keywords,b.id,charindex(';',a.keywords+';',b.id)-b.id)go1
相关文章推荐
- p279_1016在字符串有数字与非字符,找出连续的数字作为整数存放并统计个数。方法简洁,不同于答案书
- 作业三-3应用分支与循环结构解决问题——统计字符
- 统计字符
- 超初级的用Python收集杂乱字符串中的特定字符,统计出每个特定字符的出现次数并取出最小值
- C#中的集合、集合操作、分开奇偶数、初始化集合、字符处理、统计字符个数、字符转换
- js统计字符出现次数
- java流类,快速统计出字符次数+++
- [YTU]_1032( 统计出其中英文字母、数字、空格和其他字符的个数)
- Java,统计字符串中各字符出现的次数
- [c++]输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(写的代码有疑惑,求解求教)
- PHP统计所有字符在字符串中出现的次数
- 1042. 字符统计(20)
- Problem G: 字符统计
- 统计字符个数,单词个数,行数
- C# 统计文章中字符的种类和个数 哈希表和字典的使用
- 统计文章中英文字符个数!
- hdu 统计字符
- 字符个数统计——来自华为OJ平台测试基础篇
- HDOJ 1860 统计字符
- 分拆统计字符串