求SQL语气,谢谢!
姓名 科目 分数
王 数学 1
王 数学 2
王 数学 3
王 语文 1
王 数学 3
张 数学 3
张 数学 3
张 语文 3
得到的结果是:
姓名 记录条数 汇总分
王 5 10
张 3 9
谢谢!
[解决办法]
if OBJECT_ID('tempdb..#temp', 'u') is not null drop table #temp;
go
create table #temp( [姓名] varchar(100), [科目] varchar(100), [分数] INT);
insert #temp
select '王','数学','1' union all
select '王','数学','2' union all
select '王','数学','3' union all
select '王','语文','1' union all
select '王','数学','3' union all
select '张','数学','3' union all
select '张','数学','3' union all
select '张','语文','3'
--SQL:
SELECT [姓名] , 记录条数=COUNT(*), 汇总分=SUM([分数])
from #temp
GROUP BY [姓名]
/*
姓名记录条数汇总分
王510
张39
*/
--> 测试数据:@T
declare @T table([姓名] varchar(2),[科目] varchar(4),[分数] int)
insert @T
select '王','数学',1 union all
select '王','数学',2 union all
select '王','数学',3 union all
select '王','语文',1 union all
select '王','数学',3 union all
select '张','数学',3 union all
select '张','数学',3 union all
select '张','语文',3
select [姓名],COUNT(1) AS 记录条数,SUM([分数]) AS 汇总分 from @T GROUP BY [姓名]
/*
姓名 记录条数 汇总分
---- ----------- -----------
王 5 10
张 3 9
*/