当前位置: 首页 > 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.hkea.cn/news/683310/

相关文章:

  • 用wordpress做网站百度推广管理
  • 一个空间可以放两个网站吗html模板网站
  • 做试用网站的原理网站推广优化平台
  • 软件工程培训机构学费亚马逊seo什么意思
  • 做恶搞网站软件有哪些苏州seo怎么做
  • 怎么做微信小说网站企业网络营销策划方案
  • 网站后台上传图片失败百度下载免费安装最新版
  • 镇江做网站需要多少钱企业网站模板设计
  • 西安seo优化系统网页seo
  • 如何用网站模板做网站广州网络营销推广
  • 承德手机网站建设seo推广排名
  • wordpress块引用一个网站可以优化多少关键词
  • 360网站卖东西怎么做的无锡seo优化公司
  • 邢台人民网站百度视频推广怎么收费
  • 常州天启建设公司网站高端快速建站
  • ppt模板免费下载网站不用登录seo测试工具
  • 四川建设人才网官网查询阜新网站seo
  • 太原网站开发定制百度网盘官网下载
  • 业主装修日记那个网站做的好片多多可以免费看电视剧吗
  • 租车网站建设站长之家源码
  • 昌吉州回族自治州建设局网站地产渠道12种拓客方式
  • 北京市网站公司网络项目免费的资源网
  • 电子商务网站规划、电子商务网站建设站长工具 忘忧草
  • 凡科建网关键词优化公司哪家好
  • seo排名推广工具seo公司多少钱
  • 做视频网站赚钱怎么在百度上推广自己的公司信息
  • 网站建设凡科厦门网站建设平台
  • 互联网行业pest分析福州百度快速优化排名
  • 做网站的接私活犯法吗如何对网站进行推广
  • 身高差效果图网站优化师和运营区别