欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql server 分组统计解决方法

更新时间: 2014-01-05 02:17:08 责任编辑: Author_N1

 

SQL Server 分组统计
我想请教下大家关于SQL查询统计的问题:
直接上图:

我分别想统计出:选项select_key 每个的个数   注意:select_key= 1,2 表示 选择了1和2

tmbh select_key OptionCount
A1 1 7
A1 1,2 284
A1 2 14
A1 3 1

结果我想要是:
tmbh select_key OptionCount
A1 1 7+284
A1 2 14+284
A1 3 1

各位大侠,帮我看看应该怎么查询统计呢?在线等回复
--参考方法--
create table tb(tmbh varchar(10),select_key varchar(30),OptionCount int)


insert into tb
select 'A1', '1', 7   union all
select 'A1', '1,2', 284 union all
select 'A1', '2', 14 union all
select 'A1', '3', 1
go


select a.tmbh,a.select_key,a.OptionCount+isnull(b.OptionCount,0) as OptionCount
from tb a
left join tb b
        on a.tmbh = b.tmbh
           and charindex(',',b.select_key) > 0 
           and CHARINDEX(','+a.select_key+',' , +','+b.select_key+',')>0
where charindex(',',a.select_key) = 0 
/*
tmbh select_key OptionCount
A1 1 291
A1 2 298
A1 3 1
*/

--参考方法--
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-12-30 14:21:51
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
-- Dec 28 2012 20:23:12 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([tmbh] varchar(2),[select_key] varchar(3),[OptionCount] int)
insert [huang]
select 'A1','1',7 union all
select 'A1','1,2',284 union all
select 'A1','2',14 union all
select 'A1','3',1
--------------开始查询--------------------------
SELECT tmbh,SUM([OptionCount])[OptionCount],[select_key]
FROM (
select
    [tmbh], 
    a.[OptionCount], 
    SUBSTRING([select_key],number,CHARINDEX(',',[select_key]+',',number)-number) as [select_key] 
from
    [huang] a,master..spt_values 
where
    number >=1 and number<=len([select_key])  
    and type='p' 
    and substring(','+[select_key],number,1)=',')a
GROUP BY tmbh,[select_key]
----------------结果----------------------------
/* 
tmbh OptionCount select_key
---- ----------- ----------
A1   291         1
A1   298         2
A1   1           3
*/
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:17:08
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7967/
本文WWW.DOC100.NET DOC100.NET版权所有。