`

sql select case when group by 行转列

 
阅读更多
XJrain表里存放每天的雨量,我想一次显示过去一天,过去二天,过去三天的雨量统计,sql语句该如何写啊?


http://zhidao.baidu.com/link?url=XE9ntJfmQ8s_s9czv6UOSP6l-fR2tp1pZeGiEBtIo6mNtUXl46AO26omwTnuItHAgODc268Axb8AM2f6TNXtp_

 

 

select 站名, 

sum(case when  日期 > 20090829  then 雨量 else 0 end ) 雨量1,

sum(case when  日期 > 20090830  then 雨量 else 0 end ) 雨量2,

sum(case when  日期 > 20090831  then 雨量 else 0 end ) 雨量3,

from dbo.XJrain 

group by  站名
有表如下
姓名  年度  科目  成绩
张三  2008  语文  95
李四  2009  数学  100
李四  2007  语文  50
张三  2010  语文  99
要查询成 
姓名 年度 语文 数学
张三 2008  95   0
张三 2010  99   0
李四 2007  50   0
李四 2009  0   100
select names,dt,
sum(case when str1='语文' then num else 0 end) As '语文' ,
sum(case when str1='英语' then num else 0 end) As '英语'  ,
sum(case when str1='数学' then num else 0 end) As '数学'  ,
sum(case when str1='历史' then num else 0 end) As '历史' 
from dbtest group by names,dt
分享到:
评论

相关推荐

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

    在 SQL 查询语言中,`CASE WHEN` 结构是一种非常有用的工具,可以用来根据条件返回不同的值。它的工作原理类似于编程语言中的 `if...else` 语句,但在 SQL 中用于创建动态列或进行复杂的条件判断。 #### 基本语法 ...

    Sql,oracle数据表行转列问题

    在SQL Server 2000中,我们可以使用CASE WHEN语句和MAX聚合函数来实现行转列操作。下面是一个示例代码: ```sql select 姓名 as 姓名, max(case 课程 when '语文' then 分数 else 0 end) 语文, max(case 课程 ...

    SQL语句将行转换成列

    sql语句将行转换成列 declare @sql varchar(8000) set @sql = 'select 物料代码' select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']' + ',sum(case 地区 when '''+地区+'''...

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

    SQL行转列参考代码(sqlserver)

    在SQL Server中,"行转列"是一种常见的数据操作,它可以帮助我们把表格中的多行数据转换成一列,或者将某一列的数据转换为多列显示。这种技术在数据分析、报表制作以及信息展示中非常实用。本文将详细介绍SQL Server...

    SQL---行转列 详细描述

    ### SQL 行转列详解 #### 一、什么是行转列? 在数据库操作中,“行转列”(Pivot)是一种常见的数据变换需求。它指的是将原始数据表中的某些字段从行的形式转换为列的形式,从而达到不同的数据展示或分析目的。...

    sql行转列解决方案.

    标题与描述均提到“SQL行转列解决方案”,这主要指的是在SQL中将数据表中的行数据转换为列数据的一种操作技巧,通常应用于需要对多行数据进行汇总展示或数据分析的场景。这种转换对于数据报告、统计分析等业务需求至...

    oracle where case when where后面跟case when

    在Oracle数据库中,`WHERE`子句是SQL查询语句的一部分,用于指定查询条件,而`CASE WHEN`语句则是一种条件表达式,允许我们基于不同的条件返回不同的值。将`CASE WHEN`嵌套在`WHERE`子句中,可以实现更复杂的逻辑...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 虽然没有内置的行转列和列转行函数,但通过 CASE、GROUP_CONCAT、UNION ALL 和 JOIN 等 SQL 语句,我们可以灵活地对数据进行转换,满足不同的数据分析需求。在实际应用中,应根据数据的特性和业务需求选择合适...

    SQL中如何实现行转列.rar

    在SQL(结构化查询语言)中,行转列是一种常见的数据转换操作,它将数据库表中的多行数据转换为单列或多列显示。这在数据分析、报表制作或数据展示时非常有用。本教程将深入探讨如何在SQL中实现这一功能。 首先,...

    mysql case when group by 实例详解

    在`GROUP BY`语句中,`CASE WHEN`可以与聚合函数结合使用,对分组后的数据进行进一步处理。如示例所示,计算红包金额(`redpackmoney`)的总和,并根据`isCheck`字段的值进行分类: ```sql SELECT SUM(redpackmoney...

    sql行转列动态与静态

    在SQL中,将数据从行转换为列的操作称为“行转列”。这一操作在实际业务场景中非常常见,比如在报表生成、数据分析等场景下,往往需要将原本纵向排列的数据转化为横向显示,以便于分析或者展示。根据题目提供的信息...

    SQL Server行转列使用

    T-SQL(Transact-SQL)是微软SQL Server所使用的扩展SQL语言,它提供了丰富的数据处理功能,包括行转列。在SQL Server中,有两种主要的方法可以实现这一转换: 1. 使用CASE语句: CASE语句是SQL中一个非常强大的...

    Sql Server 2005 行转列的实现 (横排)

    除了Pivot,还可以使用CASE语句结合GROUP BY来实现行转列。CASE语句可以用来根据条件返回不同的值,非常适合处理分类数据。以下是一个基本示例: ```sql SELECT column1, SUM(CASE WHEN condition1 THEN value END...

    sql 行转列 静态、动态 实例

    总结,SQL中的行转列技术主要利用`CASE`表达式配合聚合函数(如`MAX`)实现。静态转换适用于已知列数的情况,而动态转换则能应对未知数量的列,可以根据实际需求灵活选择。这两种方法在数据报表生成、数据整理和分析...

    sqlserver行变列

    以上介绍了几种常用的行转列方法,包括使用 `CASE WHEN` 与 `MAX`、仅使用 `CASE WHEN`、多表联接以及子查询。每种方法都有其适用场景,具体选择哪一种取决于实际需求和数据特点。通过这些方法,我们可以更加灵活...

    SQL Server中Case 的不同用法

    CASE表达式通常在SELECT语句中用来根据特定条件为数据列创建新的计算字段。例如,你可以根据书籍的价格范围给价格打标签。如以下示例所示,当价格为空时,标签为"Unpriced";价格小于10,则为"Bargain";介于10到20...

Global site tag (gtag.js) - Google Analytics