日期:2014-05-16 浏览次数:20452 次
----------------------------------------------------------------
-- Author :DBA_HuangZJ(发粪涂墙)
-- Date :2014-03-12 14:29:22
-- Version:
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
-- Apr 2 2010 15:48:46
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go
create table [huang]([学校] nvarchar(6),[学生姓名] nvarchar(8),[语文] int,[数学] int,[物理] int,[化学] int,[英语] int)
insert [huang]
select N'a学校',N'某某某1',68,78,99,41,100 union all
select N'a学校',N'某某某2',89,87,12,100,87 union all
select N'b学校',N'某某某3',89,87,12,100,87 union all
select N'b学校',N'某某某4',89,87,12,100,87
--------------生成数据--------------------------
select [学校],SUM([语文])/(SELECT COUNT([学生姓名]) FROM HUANG A WHERE HUANG.[学校]=A.[学校] GROUP BY [学校] )语文人均分
from [huang]
GROUP BY [学校]
----------------结果----------------------------
/*
学校 语文人均分
------ -----------
a学校 78
b学校 89
*/
create table test (学校 nvarchar(10),学生姓名 nvarchar(10),语文 int,
数学 int,物理 int,化学 int,英语 int)
insert into test
select 'a学校','某某某1',68,78,99,41,100 union all
select 'a学校','某某某2',89,87,12,100,87 union all
select 'b学校','某某某3',89,87,12,100,87 union all
select 'b学校','某某某4',89,87,12,100,87
select 学校,
语文人均分=cast(SUM(语文) as float)/COUNT(学生姓名),
语文及格率=convert(varchar,cast(SUM(case when 语文>59 then 1&nbs