`
zgxzowen
  • 浏览: 39220 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

group by sum case组合应用

阅读更多
博客园上的一篇文章,看后受益匪浅啊,来源:[url]http://www.cnblogs.com/zhanglei644213943/archive/2009/12/27/1633356.html
[/url]
图一:

图二:


数据库代码如下:
代码
DROP table #student
CREATE TABLE #student (stdname nvarchar( 10 ),stdsubject nvarchar( 10 ),result  int )
INSERT INTO #student VALUES ( ' 张三 ' , ' 语文 ' , 80 )
INSERT INTO #student values ( ' 张三 ' , ' 数学 ' , 90 )
INSERT INTO #student VALUES ( ' 张三 ' , ' 物理 ' , 85 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 语文 ' , 85 )
INSERT INTO #student values ( ' 李四 ' , ' 数学 ' , 92 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 物理 ' , 82 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 化学 ' , 82 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 化学 ' , 82 )
SELECT  *  FROM #student



select stdname,
    isnull(sum( case  stdsubject when  ' 化学 '  then Result end), 0 ) [化学],
    isnull(sum( case  stdsubject when  ' 数学 '  then Result end), 0 ) [数学],
    isnull(sum( case  stdsubject when  ' 物理 '  then Result end), 0 ) [物理],
    isnull(sum( case  stdsubject when  ' 语文 '  then Result end), 0 ) [语文] 
  from #student 
group by stdname



  • 大小: 2.8 KB
  • 大小: 1.4 KB
分享到:
评论

相关推荐

    case when和sum case when 写法及拼接字段

    1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType

    mysql case when group by 实例详解

    mysql 中类似php switch case 的语句。 select xx字段, case 字段 when 条件1 then 值1  when 条件2 then 值2 ...group by isCheck 使用case when : select sum(redpackmoney) as stota, (CASE i

    MYSQL中有关SUM字段按条件统计使用IF函数(case)问题

    今天群里有人问了个问题是这样的: 然后有群友是这样回答的 代码如下: select name,sum(case when stype=4 then money*(-1) else money end ) as M from table group by name 我想了想,应该可以用IF函数 于是改了下...

    MongoDB 中聚合统计计算–$SUM表达式

    我们一般通过表达式$sum来计算总和。因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种: 1,统计符合条件的所有文档的某个字段的总和; 2,统计每个文档的数组字段里面的各个数据值的和。... by_user

    2012 SQL常用操作

    ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)...

    交叉表 存储过程 实例

    AS '多煤体', SUM(CASE e.bmdwdm WHEN e.bmdwdm THEN e.kkk ELSE 0 END) AS '合计' FROM (SELECT bmdwdm, khmkdm, COUNT(bmdwdm) AS kkk FROM tblkaosheng AS d GROUP BY bmdwdm, khmkdm) AS e INNER JOIN tblbmdw ...

    SQL语句将行转换成列

    select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']' + ',sum(case 地区 when '''+地区+''' then 比率 end) [比率]' from (select distinct 地区 from 表) as a select @sql...

    Oracle中的SUM用法讲解

    Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_...GROUP BY AREA_CODE; 2、使用

    学习SQL语句(强大的group by与select from模式)

    强大的group by 代码如下: select stdname, isnull(sum( case stdsubject when ‘ 化学 ‘ then Result end), 0 ) [化学], isnull(sum( case stdsubject when ‘ 数学 ‘ then Result end), 0 ) [数学], isnull(sum...

    50个常用SQL语句,很好

    ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)...

    MYSSQL_MSS_ORACLE经典SQL.pdf

    ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、--查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO¨ (003),数据库...

    SQLQuery5.sql

    from KuChun t1 left join (select SellID, sum(sellnum)as snum,ProductType from Sell group by SellID,ProductType)t2 on t1.ShopID=t2.SellID and t1.ProductType=t2.ProductType order by t1.ShopID ...

    sql统计类查询语句

    sql统计类代码 select type,count(*) as 总数量, sum(case when level='一级' then 1 else 0 end) as 一级, sum(case when level='二级' then 1 else 0 end) as 二级, ...from table group by type

    C#语法及存储过程.docx

    from TeamScore group by teamName select teamName,第1赛季得分 = case when seasonName = '第1赛季得分' then Score end ,第2赛季得分=case when seasonName = '第2赛季得分' then Score end ,第3赛季...

    SQL Server纵表与横表相互转换的方法

    1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: ...SUM(CASE WHEN Course = N'语文' THEN Grade ...SUM(CASE WHEN Course = N'数学' THEN Grade ...GROUP BY Name 2,横表转纵表

    精通sql结构化查询语句

    6.2.4 使用别名 6.3 排序与分组 6.3.1 升序排序与降序排序 6.3.2 多列字段排序 6.3.3 使用GROUPBY子句对查询结果进行分组 6.3.4 HAVING子句的应用 6.4 条件查询 6.4.1 WHERE单条件语句查询 6.4.2 运算符查询 6.4.3 ...

    sql语句大全 包括常有语句 新手必备

    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 20、说明:列出数据库里所有的表名 select name from sysobjects where type='U' 21、说明:列出表里的所有的 ...

    超实用sql语句

    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type ...

    数据库行专列技术(SQL)

    declare @s nvarchar...select @s = @s + ',sum(case when subject=''' + cast(subject as varchar) + ''' then result end) as ' + subject from CJ group by subject select @s = @s + ' from CJ group by [name]'

    reactr-ql:用SQL来描述Reactor API。可用SQL来实现数据处理逻辑,支持实时数据处理,支持聚合,分组,自定义函数等功能,让数据处理更简单

    支持select sum(val) sum from topic group by interval('10s') 。按时间分组。 支持多列select count(1) total,productId,deviceId from messages group by productId,deviceId 。 支持select avg(temp) avgTemp ...

Global site tag (gtag.js) - Google Analytics