首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

group by 语句

2012-02-12 
求助:group by 语句 主叫被叫aa17909-22aa22aa3317909aa17909-3317909aa17909-333aa333aa3333aa17909-3333

求助:group by 语句

主叫         被叫
aa       17909-22      
aa       22                
aa       3317909                
aa       17909-3317909      
aa       17909-333    
aa       333              
aa       3333            
aa       17909-3333  

得到

主叫         被叫       拨打次数
aa       222
aa       33179092
aa       3332
aa       33332


create   table   bb
(主叫   char(10),
  被叫     char(20))

insert   into   bb
select   'aa   '   ,   '17909-22 '    
union   all
select   'aa   '     , '22 '              
union   all
select   'aa '       , '3317909 '                
union   all
select   'aa '       , '17909-3317909 '    
union   all
select   'aa '       , '17909-333 '    
union   all
select   'aa '       , '333 '              
union   all
select   'aa '       , '3333 '            
union   all
select   'aa '       , '17909-3333 '


谢谢!


[解决办法]
--try


create table bb
(主叫 varchar(10),
被叫 varchar(20))

insert into bb
select 'aa ' , '17909-22 '
union all
select 'aa ' , '22 '
union all
select 'aa ' , '3317909 '
union all
select 'aa ' , '17909-3317909 '
union all
select 'aa ' , '17909-333 '
union all
select 'aa ' , '333 '
union all
select 'aa ' , '3333 '
union all
select 'aa ' , '17909-3333 '


select 主叫,replace(被叫, '17909- ', ' ') as 被叫, 拨打次数=count(*)
from bb
group by 主叫,replace(被叫, '17909- ', ' ')
[解决办法]
同上
[解决办法]
create table bb
(主叫 char(10),
被叫 char(20))

insert into bb
select 'aa ' , '17909-22 '
union all
select 'aa ' , '22 '
union all
select 'aa ' , '3317909 '
union all
select 'aa ' , '17909-3317909 '
union all
select 'aa ' , '17909-333 '
union all
select 'aa ' , '333 '
union all
select 'aa ' , '3333 '
union all
select 'aa ' , '17909-3333 '




select 主叫,substring(被叫,1,6) as 被叫, 拨打次数=count(*)
from bb
group by 主叫,substring(被叫,1,6)
[解决办法]
create table bb
(主叫 char(10),
被叫 char(20))

insert into bb
select 'aa ' , '1790922 '
union all
select 'aa ' , '22 '
union all
select 'aa ' , '3317909 '
union all
select 'aa ' , '179093317909 '
union all
select 'aa ' , '17909333 '
union all
select 'aa ' , '333 '
union all
select 'aa ' , '3333 '
union all
select 'aa ' , '179093333 '

select 主叫,被叫,被叫次数=count(被叫) from (
select 主叫,被叫=case left(被叫,5)= '17909 ' when substring(被叫,1,5) else 被叫 end
from bb
) t group by 主叫,被叫

得到

主叫 被叫 拨打次数
aa 222
aa 33179092
aa 3332
aa 33332

[解决办法]
select 主叫,case when left(被叫,len( '17909 '))= '17909 ' then right(被叫,len(被叫)-len( '17909 ')-1) else 被叫 end,count(*)
from tbb
group by 主叫,case when left(被叫,len( '17909 '))= '17909 ' then right(被叫,len(被叫)-len( '17909 ')-1) else 被叫 end

热点排行