`

查询sql 行变列

 
阅读更多
查询语句,行变列的经典用法

教师号  星期号 是否有课
 1    2   有
 1    3   有
 2    1   有
 3    2   有`
 1    2   有

写一条sql语句让你变为这样的表

教师号 星期一 星期二 星期三
 1       2   1 
 2   1   
 3       1

各星期下的数字表示:对应的教师在星期几已经排的课数

数据库表信息如下



简单的SQL
select a.teacherid as 教师号,sum(a.w1) 星期一,sum(a.w2) 星期二,sum(a.w3)  星期三 from(
select teacherid,case when week=1 then 1 end w1, case when week=2 then 1 end w2,case when week=3 then 1 end w3  from course) a  group by teacherid


复杂的SQL
select b.teacherid,sum(w1) as 星期一,sum(w2)  星期二,sum(w3) 星期三 from (
select a.teacherid,case  when a.week=1  then a.num end as w1,case  when a.week=2  then a.num end as w2, case  when a.week=3  then a.num end as w3 from (select teacherid,week,count(*) as num from course group by teacherid,week) a) b group by b.teacherid
  • 大小: 3.7 KB
分享到:
评论

相关推荐

    sql语言让数据行变列显示

    sql语言让数据行变列显示,简单的sql语句就能实现

    行变列与业务数据组合查询sql

    行变列与业务数据组合查询sql,具体业务描述及sql见具体sql编写,不清楚,可以留言讨论

    sqlserver行变列

    ### SQL Server 行转列操作详解 在数据库管理和数据分析领域,有时我们需要将表格中的行转换成列,这种操作称为“行转列”。行转列在实际应用中非常常见,尤其是在处理具有多维度的数据集时。例如,从一个记录学生...

    sql利用union all行转列

    ### SQL利用UNION ALL进行行转列方法解析 在数据库操作中,经常需要对数据进行各种转换以满足不同的业务需求。其中,“行转列”(Pivot)是一种常见的数据转换方式,它能够将数据表中的某列或多列值转换为多列的...

    SQL合并一列

    在SQL查询语言中,“SQL合并一列”通常指的是通过某种方式将多个行中的数据合并到同一列中的技术。这种需求常见于报表制作、数据分析等领域,尤其是在处理会计科目等需要展示多层级信息的情况下更为常用。 #### 1. ...

    数据库行变列查询 实现方法

    ### 数据库行变列查询实现方法 #### 一、引言 在数据库操作中,有时我们需要将表中的数据从行转换为列,这种操作被称为“行转列”或“行列互换”。例如,在一个学生成绩表中,原始数据可能按照学生姓名、科目和分数...

    sql实现多行合并一行

    在SQL中,有时候我们需要将查询结果中多行的数据合并成一行,这在处理某些特定的报表或数据分析时非常有用。这种技术通常被称为行合并或行聚合。在本例中,我们将探讨如何使用纯SQL实现这一功能,特别是针对Oracle...

    Oracle行变列-存储过程

    1. 首先,通过查询找到最大日期差`Col_maxday`,这是行变列中需要转换的列数。这里通过计算`tt_activity_vehicle`表中`repair_date`字段与`tm_recall_activity`表中`startdate`字段之间的最大天数得到。 2. 如果`...

    sql列行转换

    ### SQL中的列行转换技术详解 #### 一、引言 在处理数据库查询时,我们经常需要对数据进行各种各样的转换,以便更好地满足业务需求。其中,“列行转换”是一种非常实用的技术,它能够帮助我们将表格中的列数据转换...

    sql 多行合并某一列字符串拼接的示例

    在SQL中,将多行数据合并为一行,尤其是在某一列进行字符串拼接,是一项常见的需求。这通常用于汇总数据、创建报表或者为了分析目的而整合信息。本文将深入探讨如何利用SQL实现多行数据的合并,特别关注字符串拼接的...

    SQLServer2005高级查询

    在SQL Server 2005中,高级查询技术是数据库管理员和开发人员必备的技能,它们可以帮助用户更高效地从大型数据集中提取信息。...在实践中,不断试验和优化查询语句,结合索引策略,将使数据管理变得更加得心应手。

    SQL查询语句使用

    ### SQL查询语句使用 ...从简单的数据检索到复杂的多表联接以及条件过滤,SQL提供了丰富的语法支持,使得数据管理和分析变得更加高效便捷。掌握这些基本的SQL查询语句对于任何数据库开发人员来说都是非常必要的。

    oracle行转列oracle行转列

    通过这种方式,我们可以在运行时动态构建SQL查询,根据需要转换的`subject_name`值动态添加`DECODE`函数,从而实现更为灵活和高效的行转列操作。 总结来说,Oracle中的行转列操作主要依赖于`DECODE`函数和`GROUP BY...

    海量数据优化查询SQL

    然而,如果列的不同值较少,建立索引反而可能导致更新操作变慢,比如性别这样的二元属性。复合索引(compound index)是另一种有效手段,适用于多个列共同参与排序或过滤的情况。此外,定期检查和维护索引的完整性和...

    SQLServer2008技术内幕:T-SQL查询

    在SQL Server 2008中,SELECT语句是数据查询的基础,它允许用户从一个或多个表中选择特定的行和列。书中可能涵盖了WHERE子句、聚合函数(如COUNT、SUM、AVG等)、GROUP BY和HAVING子句,以及ORDER BY用于排序结果。...

    SQL基础教程之行转列Pivot函数

    在SQL中,Pivot函数是一种强大的工具,用于将行数据转换为列数据,这对于数据分析和报表展示特别有用。在本文中,我们将深入探讨SQL基础教程中的Pivot函数,特别是针对SQLSERVER数据库,尽管其他数据库系统如Oracle...

    SQL语句的多表查询

    当涉及三个或更多表时,查询可能会变得更加复杂。例如: ```sql SELECT table1.column1, table2.column2 FROM table1, table2, table3 WHERE table1.column1 = table2.column1 AND table1.column1 = table3.column1...

    SQL 将 竖表 变横

    ### SQL将竖表变横:实现方法与案例分析 #### 背景介绍 在数据库管理及数据分析领域中,数据的格式对查询效率和展示效果有着直接影响。有时我们需要将存储为“竖表”(即每一行代表一个记录,每个属性占据一列)的...

Global site tag (gtag.js) - Google Analytics