数据分组问题

转载 2006年06月11日 16:44:00

表:
F1       F2
-----------------
A         1    
A         1    
A         1    
A         2    
A         1    
B         1    
B         1    
B         1  
请问怎样实现如下结果(SQL解决):
F1        F2     
-----------------
A         1     
A         1     
A         1     
A         2     
A         1
 Total A: 6 
B         1     
B         1     
B         1     
 Total B: 3  

--数据
declare @t table (F1 varchar(10),F2 int)
insert @t select 'A',1
union all select 'A',1
union all select 'A',1
union all select 'A',2
union all select 'A',1
union all select 'B',1
union all select 'B',1
union all select 'B',1
union all select 'C',1
union all select 'C',2
union all select 'C',1
union all select 'C',3

--语句1.不显示最后一行(如果不要的话)

declare @count int
declare @s varchar(8000)
select id=identity(int,1,1), * into # from @t
set @count=@@rowcount+(select count(distinct(F1)) from #)
select @count
select  @s=(
'select top '+rtrim(@count)+'
(
case isnumeric(isnull(rtrim(id),''Total:'')) when 1 then ''''
when 0  then (isnull(rtrim(id),''Total:'')) end
)+isnull(F1,''All'') as F1
,sum(F2) as F2
from #
group by F1,id with rollup
')
exec (@s)

--语句2,显示最后一行
select
(
case isnumeric(isnull(rtrim(id),'Total:')) when 1 then ''
when 0  then (isnull(rtrim(id),'Total:')) end
)+isnull(F1,'All') as F1
,sum(F2) as F2
from #
group by F1,id with rollup

--破弃测试环境
drop table #

/*
结果集1:

F1                     F2         
---------------------- -----------
A                      1
A                      1
A                      1
A                      2
A                      1
Total:A                6
B                      1
B                      1
B                      1
Total:B                3
C                      1
C                      2
C                      1
C                      3
Total:C                7

结果集2
F1                     F2         
---------------------- -----------
A                      1
A                      1
A                      1
A                      2
A                      1
Total:A                6
B                      1
B                      1
B                      1
Total:B                3
C                      1
C                      2
C                      1
C                      3
Total:C                7
Total:All              16

*/

HHOJ 多重部分和问题(分组背包问题)

1149: 多重部分和问题 时间限制: 1 Sec  内存限制: 128 MB 提交: 160  解决: 88 题目描述 有n中不同大小的数字ai,每种各mi个。判断是否可以从这些数字之中选出若干...
  • huihui1094667985
  • huihui1094667985
  • 2016年08月06日 09:20
  • 193

R语言学习笔记 —— 数据的分组处理

一、实现数据的分组求和
  • cleverbegin
  • cleverbegin
  • 2014年04月12日 11:12
  • 12225

hdu1712 分组背包问题

问题 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量...
  • u013573047
  • u013573047
  • 2014年12月20日 15:25
  • 960

js根据json数据中的某一个属性来给数据分组

var arr = [{"Group":1,"Groupheader":"质量管理","Leftimg":"","Left":"","Min":"","Right":"","Rightimg":""}...
  • Firoly
  • Firoly
  • 2017年01月10日 15:28
  • 2287

PHP之数据分组

今天公司需求要做统计,而且是要相同单位的加在一起,好吧,起初以为很简单,后来就费劲的,因为单位不止一两个,这就需要分组,然后进行统计…… 我把那些数据抽离,单独放到一个数组中,如图 然后就需要分组...
  • linmufeng326
  • linmufeng326
  • 2016年02月17日 17:06
  • 1016

C#之LINQ基础 使用group将数据分组

慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 using System; using System.Collections.Gen...
  • yushaopu
  • yushaopu
  • 2016年08月05日 11:02
  • 1497

【SQL】分组数据,过滤分组-group by , having

创建分组 - GROUP BY
  • robinjwong
  • robinjwong
  • 2014年05月01日 23:13
  • 15259

利用pandas进行数据分组及可视化

利用pandas进行数据分组及可视化 kaggle的Titanic数据集,给定了Titanic号邮轮的乘客的船舱等级(Pclass)、性别(Sex)、年龄(Age)、是否获救(Survived)等信息...
  • hewb14
  • hewb14
  • 2016年01月14日 22:01
  • 5378

sql分组后查找每组的前几条记录语句

常用的sqlserver,mysql,oracle等数据库sql语句都是遵循sql标准,但是每种数据库都有自己的特点。 如果想做到程序兼容性更好,后期维护更方便,还是建议尽量使用各种数据库通用的sql...
  • jinjin603
  • jinjin603
  • 2016年06月01日 11:32
  • 2046

SQL数据排序与分组

SQL
  • GoslingBoy
  • GoslingBoy
  • 2014年03月12日 23:27
  • 3893
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据分组问题
举报原因:
原因补充:

(最多只允许输入30个字)