sql竖表转横表 SQL如何进行纵表转横表?
SQL如何进行纵表转横表?
SELECT 姓名,"数学"=MAX(CASE 课程 WHEN "数学" THEN 分数 ELSE 0 END),"语文"=MAX(CASE 课程 WHEN "语文" THEN 分数 ELSE 0 END) ,"英语"=MAX(CASE 课程 WHEN "英语" THEN 分数 ELSE 0 END) FROM TB GROUP BY 姓名 --或者 SELECT 姓名, ,"数学"=SUM(CASE 课程 WHEN "数学" THEN 分数 ELSE 0 END),"语文"=SUM(CASE 课程 WHEN "语文" THEN 分数 ELSE 0 END) ,"英语"=SUM(CASE 课程 WHEN "英语" THEN 分数 ELSE 0 END) FROM TB GROUP BY 姓名
SQL如何进行纵表转横表?
因为你没写commit用sqlplus那必须写提交命令,才算真正向数据库提交数据。当前主流应用还是使用pl/sql,支持command命令窗口,即包含了sqlplus界面的窗口。
SQL sever中将横表转纵表时的这段代码是什么意思,可以详细解释一下吗?
查询每个 name 中 语文 的最大 result 值,如果 语文 的 result 没有值,则返回0; 其他数学、物理原理一样;
求教:oracle数据库中怎么样能将一个纵表变成横表?
一般行列转置,有两种做法 一种是case,但是由于case需要提前知道列数,所以在很多情况下不能满足 所以出现了动态语句case,通过动态SQL语句的组装,实现了动态的列的拼装。但是语句复杂度很高 所以另一种方式就是靠程序转置,使用一些Hash(JAVA)或Dictionary(C#)等一些对象,可以在程序中轻松地做出转置,但是也有缺点,缺点就是开销大,原本只处理一次的数据(只在数据库处理),现在需要处理两次(数据库一次,程序一次)
数据库纵表变横表会不会影响性能?
横表就是普通的建表方式,如一个表结构为:主键、字段1、字段2、字段3。
。
。
如果变成纵表后,则表结构为: 主键、字段代码、字段值。
而字段代码则为字段1、字段2、字段3。
具体为电信行业的例子。
以用户帐单表为例一般出账时用户有很多费用客户,其数据一般存储为:时间,客户ID,费用科目,费用。
这种存储结构一般称为纵表,其特点是行数多,字段少。
纵表在使用时由于行数多,统计用户数或对用户进行分档时还需要进行GROUP BY 操作,性能低,且操作不便,为提高性能,通常根据需要将纵表进行汇总,形成横表,比如:时间、客户ID,基本通话费、漫游通话费,国内长途费、国际长途费....。
通常形成一个客户一行的表,这种表统计用户数或做分档统计时比较方便。
另外,数据挖掘时用到的宽表一般也要求是横表结构。
纵表对从数据库到内存的映射效率是有影响的,但细一点说也要一分为二:纵表的初始映射要慢一些;纵表的变更的映射可能要快一些,如果只是改变了单个字段时,毕竟横表字段比纵表要多很多
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。