`
zgxzowen
  • 浏览: 40227 次
  • 性别: 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 写法及拼接字段

    这个查询通过 `SUM` 函数与 `CASE WHEN` 的组合使用,可以轻松地统计出每种订单状态的数量。 ### 拼接字段 在 SQL 中,经常需要将多个字段或值合并成一个字符串。这可以通过使用字符串连接操作符(如 `+` 或 `||`...

    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

    group by用法.doc

    当`CUBE`或`ROLLUP`产生NULL值时,可以通过`CASE`语句来处理,如`SELECT CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1' ELSE SupplierID END AS SupplierID, SUM(UnitPrice) AS QtySum FROM Products GROUP BY ...

    在SQL语言中用Group By子句实现除法.pdf

    总结来说,在SQL中使用Group By子句实现除法运算需要一些额外的技巧,比如子查询、窗口函数和case表达式。这些方法可以针对不同的数据处理需求来灵活运用。尽管在简单的分组聚合中Group By子句非常强大,但在涉及更...

    《Pro Oracle SQL》Chapter7--7.10GROUP BY Restrictions

    1. GROUP BY基础:GROUP BY子句用于将数据集按照一个或多个列进行分组,以便对每个分组应用聚合函数(如COUNT、SUM、AVG、MAX、MIN等)。这在处理大量数据时,尤其在分析统计方面非常有用。 2. GROUP BY与聚合函数...

    mssql CASE,GROUP BY用法

    接下来是 `GROUP BY` 语句,它的主要作用是将数据按照一个或多个列进行分组,以便可以对每个分组应用聚合函数,如 `SUM`、`AVG`、`COUNT` 等。在上述代码中,`GROUP BY` 被用来根据年份(`convert(char(4),Years,120...

    oracle case语句的介绍

    GROUP BY grade; ``` 在这个例子中,我们使用了 CASE 语句来对 `sex` 字段进行条件判断。当 `sex` 的值为 1 时,表示男生,此时 CASE 语句返回 1;当 `sex` 的值为 2 时,表示女生,同样 CASE 语句返回 1;其他情况...

    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函数 于是改了下...

    详细解析 mysql 中的 case when 语句的使用

    本文将详细介绍如何在MySQL中使用`CASE WHEN`语句,并通过具体的例子来展示它的应用。 #### 二、基础知识介绍 1. **基本语法**: - CASE语句有两种形式: - 简单CASE表达式: ```sql CASE value WHEN [compare-...

    SQL经典面试题及答案 CASE

    1. **CASE语句与GROUP BY结合使用** 题目要求根据日期(rq)统计胜利(胜)和失败(负)的数量。这需要使用CASE语句来条件判断,并结合GROUP BY进行分组统计。 ```sql SELECT rq, SUM(CASE WHEN shengfu = '胜' ...

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

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

    sql中的case用法

    GROUP BY CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END...

    SQL中Case语句用法讨论_BJ

    GROUP BY country; ``` 2. **数据清洗与转换**:`Case`语句可以帮助在数据预处理阶段对特定字段进行逻辑判断和值转换,确保数据的一致性和准确性。 3. **约束验证**:在创建表时,可以通过`Case`语句结合`Check`...

    Oracle中的SUM用法讲解

    GROUP BY AREA_CODE; ``` 在这个查询中,SUM函数与CASE WHEN一起使用,如果`IPTV_NBR`或`ACC_NBR`为空或等于空字符串,那么对应的CASE WHEN表达式结果为0,否则为1。然后,SUM函数将这些1或0相加,得到每组中非空值...

    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 ...

Global site tag (gtag.js) - Google Analytics