当前位置: 首页 > news >正文

建设部指定招标网站网络营销自己做网站

建设部指定招标网站,网络营销自己做网站,wordpress站群教程,穷游网站 做行程 封面ORACLE行转列、列转行实现方式及案例 行转列案例方式1.PIVOT方式2.MAX和DECODE方式3.CASE WHEN和GROUP BY 列转行案例方式1.UNPIVOT方式2.UNION ALL 行转列 案例 假设我们有一个名为sales的表,其中包含了产品销售数据。表中有三列:product(…

ORACLE行转列、列转行实现方式及案例

  • 行转列
    • 案例
    • 方式1.PIVOT
    • 方式2.MAX和DECODE
    • 方式3.CASE WHEN和GROUP BY
  • 列转行
    • 案例
    • 方式1.UNPIVOT
    • 方式2.UNION ALL

行转列

案例

假设我们有一个名为sales的表,其中包含了产品销售数据。表中有三列:product(产品名称)、year(年份)和amount(销售额)。表中的数据如下:
在这里插入图片描述
将这个表中的数据进行行转列,使得每一行表示一个产品,每一列表示一年的销售额。
使得得到以下结果:
在这里插入图片描述

方式1.PIVOT

PIVOT是Oracle 11g之后引入的一种用于行列转换的函数。它可以将查询结果中的行数据转换为列数据,从而实现行列转换。PIVOT函数的基本语法如下:

SELECT ...
FROM ...
PIVOT (aggregate_function(column_to_aggregate)FOR column_to_pivotIN (list_of_values))

其中,aggregate_function是一个聚合函数,如SUM、MAX、MIN等;column_to_aggregate是要进行聚合的列;column_to_pivot是要进行行列转换的列;list_of_values是要转换为列的值的列表。

实现案例所示效果可以通过如下方式:

SELECT *
FROM sales
PIVOT (SUM(amount) FOR year IN (2018, 2019, 2020));

方式2.MAX和DECODE

DECODE 可以根据条件返回不同的值。DECODE 函数的基本语法如下:

DECODE(expression, search1, result1,search2, result2, ..., default)

其中,expression 是要进行比较的表达式;search1、search2 等是要进行比较的值;result1、result2 等是当表达式与对应的搜索值相等时返回的结果;default 是当表达式与所有搜索值都不相等时返回的默认值。

若要实现案例的效果可以通过以下方式:

SELECT product,MAX(DECODE(year, 2018, amount)) AS "2018",MAX(DECODE(year, 2019, amount)) AS "2019",MAX(DECODE(year, 2020, amount)) AS "2020"
FROM sales
GROUP BY product;

注意:这里取的是每年数据的最大值,每年每产品指只会一条,而方式3是取总和

方式3.CASE WHEN和GROUP BY

SELECT product,SUM(CASE WHEN year = 2018 THEN amount END) AS "2018",SUM(CASE WHEN year = 2019 THEN amount END) AS "2019",SUM(CASE WHEN year = 2020 THEN amount END) AS "2020"
FROM sales
GROUP BY product;

注意:这里取的是每年数据的总和,每年每产品的总和,而方式2是取最大的一条

列转行

案例

与行转列的案例相反假设我们有一个名为sales的表,其中包含了产品销售数据。表中有四列:product(产品名称)、2018(2018年销售额)、2019(2019年销售额)和2020(2020年销售额)。表中的数据如下:
在这里插入图片描述
现在我们想要将这个表中的数据进行列转行,使得每一行表示一个产品在某一年的销售额。
实现效果如下:
在这里插入图片描述

方式1.UNPIVOT

UNPIVOT是Oracle中用于实现列转行的函数,基本语法如下:

SELECT ...
FROM ...
UNPIVOT (column_to_unpivotFOR new_column_nameIN (list_of_columns))

其中,column_to_unpivot是要进行列转行的列;new_column_name是新生成的列的名称;list_of_columns是要转换为行的列的列表。

实现案例中的结果可以用如下方式:

SELECT *
FROM sales
UNPIVOT (amount FOR year IN ("2018", "2019", "2020"));

方式2.UNION ALL

SELECT product, '2018' AS year, "2018" AS amount FROM sales
UNION ALL
SELECT product, '2019' AS year, "2019" AS amount FROM sales
UNION ALL
SELECT product, '2020' AS year, "2020" AS amount FROM sales;

注意:单引号表示的是固定字符2018即字段名2018,双引号表示字段2018下的值

http://www.yayakq.cn/news/447824/

相关文章:

  • 国外租车网站模板微商软件商城24小时
  • 网站策划与建设阶段个人怎么做公众号
  • wordpress vr网站南宁seo域名
  • 网站建设次年续费合同合肥企业建站系统
  • 视频网站发展好应该怎么做网站的着陆页
  • 企业网站seo推广企业网站制作素材
  • 电子购物网站建设个人网站整站下载
  • 让自己的电脑做网站的服务器辽宁网站制作公司
  • 从化市网站建设wap网站 区别
  • 自己做网站用什么软件手机微信客户端网站建设
  • 玩具购物网站模板百度站内搜索
  • 咨询北京国互网网站建设广州网络推广万企在线
  • ipv6改造 网站怎么做6代注册各类app
  • 网站备案幕布下载太原智能化营销网站制作公司
  • 容城网站建设网站策划建设方案书
  • 一个网站 两个域名网络营销的新产品战略
  • 购物网站后台设计建筑国企招聘信息网
  • 高端网站设计 上海房地产公司网站建设模板
  • 卓训网是个什么网站wordpress 批量
  • 高校建设思政教育网站案例html自学怎么入门
  • 建设小的电商网站开源系统大淘客网站logo怎么做
  • 关于asp.net的网站模板网站建设销售该学的
  • 企业网站建设方案详细方案wordpress首页怎么做
  • 做图表好用网站或软件广州公司注册费用
  • 网站开发学习步骤目前最好用的云电脑排行
  • 网站美工设计长沙优化网站哪家公司好
  • 专业金融网站建设工程备案信息查询
  • 广州网站建设设计WordPress播放背景音乐
  • wordpress本站运行响应式网站的建设
  • 网站交互是什么珠海网站建设品牌策划