有一表,id,title,key,time,... 其中key字段存入的数据为“aa,bb,cc”“aa,bb”“aa”“bb“ “a,b,c,cc”......数据用逗号隔开
 要求统计key字段中所有数据,重复数据统计重复次数。最终统计列表为:aa  3
                bb  3
                cc  2
                a   1
                ......
用什么方法可以简单的实现,多谢

解决方案 »

  1.   

    if object_id('pubs..A') is not null
       drop table A
    gocreate table A(id int,[key] varchar(20))
    insert into A(id,[key]) values(1,'aa,bb,cc')
    insert into A(id,[key]) values(2,'aa,bb')
    insert into A(id,[key]) values(3,'aa')
    insert into A(id,[key]) values(4,'bb')
    insert into A(id,[key]) values(5,'a,b,c,cc')
    go
    -- 建立一个辅助的临时表就可以了
    SELECT TOP 8000 id = identity(int,1,1) 
    INTO # FROM syscolumns a, syscolumns b   select [key] , count(*) as 数量 from

      SELECT 
        A.ID, 
        [key] = SUBSTRING(A.[key], B.ID, CHARINDEX(',', A.[key] + ',', B.ID) - B.ID) 
      FROM A, # B
      WHERE SUBSTRING(',' + a.[key], B.id, 1) = ','   
    ) t
    group by [key]
    order by [key]
    GOdrop table A,#
    /*
    key                  数量          
    -------------------- ----------- 
    a                    1
    aa                   3
    b                    1
    bb                   3
    c                    1
    cc                   2(所影响的行数为 6 行)
    */
      

  2.   

    不好意思我用的是acess数据库,这样该怎么弄啊,可以写个asp程序,再建个表吗?