我如何取消对三种类型的值(包括列标题)的透视

汉巴南

我的数据如下所示:

╔═════════╦═════════╦═════════╦══════════════╦══════════════╦══════════════╗
║ option1 ║ option2 ║ option3 ║ percent_opt1 ║ percent_opt2 ║ percent_opt3 ║
╠═════════╬═════════╬═════════╬══════════════╬══════════════╬══════════════╣
║ 10      ║ 4       ║ 1       ║ 0.67         ║ 0.27         ║ 0.07         ║
╚═════════╩═════════╩═════════╩══════════════╩══════════════╩══════════════╝

因此,如果我想使前三个列标题为行值,那么其他值也应为更多的行值,我该怎么做?

这就是我的意思:

╔═════════╦════════╦═════════════╗
║ options ║ values ║ percentages ║
╠═════════╬════════╬═════════════╣
║ option1 ║ 10     ║ 0.67        ║
╠═════════╬════════╬═════════════╣
║ option2 ║ 4      ║ 0.27        ║
╠═════════╬════════╬═════════════╣
║ option3 ║ 1      ║ 0.07        ║
╚═════════╩════════╩═════════════╝

这是我正在使用的代码:

declare @tbl as table (
    option1 numeric(18,0),
    option2 numeric(18,0),
    option3 numeric(18,0),
    per_opt1 numeric(18,2),
    per_opt2 numeric(18,2),
    per_opt3 numeric(18,2)
)

insert into @tbl
values (10,4,1,0.67,0.27,0.07)

;

select * from
(
    select t.[option1],t.[option2],t.[option3]
    from @tbl as t
) as srctbl
    unpivot (
        val for options in (option1,option2,option3)
) as unpiv

我不知道如何使最后三个百分比列值成为行值,部分原因是因为我无法使用其他数据类型,并且因为我不确定如何做到这一点。

有什么建议?

戈登·利诺夫

用途apply

select v.*
from @tbl t cross apply
     (values ('option1', option1, percent_opt1),
             ('option2', option2, percent_opt2),
             ('option3', option3, percent_opt3)
     ) v(option, value, percent_opt);

注意:values是一个SQL关键字,因此我更改了中间列的名称。

我认为没有任何学习的理由unpivot定制功能-少数数据库中的扩展-以“可以”的方式完成一件事情。

另一方面,apply支持横向连接,这是标准的(即使语法在数据库之间有所不同)。它们非常强大,并且毫不动摇是开始学习它们的好方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何编写一个返回三种类型之一的swift函数?

来自分类Dev

实施三种类型的用户-Laravel

来自分类Dev

功能依赖性:两种类型决定第三种类型

来自分类Dev

使Java类通用,但仅适用于两种或三种类型

来自分类Dev

输出一个可能是三种类型之一的数字

来自分类Dev

现实生活中如何使用三种类型的二叉树遍历(预顺序,有序,后顺序)?

来自分类Dev

如何在MS Access中创建数据透视表以避免对一种类型的记录使用空值?

来自分类Dev

使用通用方法返回list <T>,其中T可以是共享相同结构的三种类型之一

来自分类Dev

RxJava将两种不同类型的可观察变量组合为第三种类型的可观察变量

来自分类Dev

RxJava将两种不同类型的可观察变量组合为第三种类型的可观察变量

来自分类Dev

将具有三种类型格式化数据的 JSON 文件解析为三个单独的数据帧

来自分类Dev

如何在Wordpress中显示最后三种自定义帖子类型

来自分类Dev

如何创建一个包含三种不同类型向量的向量

来自分类Dev

对于给定的接口,我有三种实现。这三个实现如何共享相同的方法?

来自分类Dev

如何在第三种方法中将两种不同方法返回的值相乘?

来自分类Dev

我试图结合三种不同的干净的URL规则

来自分类Dev

我试图结合三种不同的干净的URL规则

来自分类Dev

我如何分析三种机器学习模型的输出,这样我只能得到一个结果?

来自分类Dev

如何使用timeit对三种算法计时?

来自分类Dev

如何以三种不同的方式对齐弹性项目?

来自分类Dev

如何停止我的一种类型的对象与其他类型的对象交互?

来自分类Dev

Cocoapod的三种方案

来自分类Dev

三种js性能

来自分类Dev

。与三种模型结合

来自分类Dev

三种js性能

来自分类Dev

三种常用方法

来自分类Dev

如何在三种语言的网站上以三种不同的语言使用Disqus评论?

来自分类Dev

如何将一种类型的多个值合并为另一种类型的单个值

来自分类Dev

我如何暗示一种类型可以与打字相媲美

Related 相关文章

  1. 1

    如何编写一个返回三种类型之一的swift函数?

  2. 2

    实施三种类型的用户-Laravel

  3. 3

    功能依赖性:两种类型决定第三种类型

  4. 4

    使Java类通用,但仅适用于两种或三种类型

  5. 5

    输出一个可能是三种类型之一的数字

  6. 6

    现实生活中如何使用三种类型的二叉树遍历(预顺序,有序,后顺序)?

  7. 7

    如何在MS Access中创建数据透视表以避免对一种类型的记录使用空值?

  8. 8

    使用通用方法返回list <T>,其中T可以是共享相同结构的三种类型之一

  9. 9

    RxJava将两种不同类型的可观察变量组合为第三种类型的可观察变量

  10. 10

    RxJava将两种不同类型的可观察变量组合为第三种类型的可观察变量

  11. 11

    将具有三种类型格式化数据的 JSON 文件解析为三个单独的数据帧

  12. 12

    如何在Wordpress中显示最后三种自定义帖子类型

  13. 13

    如何创建一个包含三种不同类型向量的向量

  14. 14

    对于给定的接口,我有三种实现。这三个实现如何共享相同的方法?

  15. 15

    如何在第三种方法中将两种不同方法返回的值相乘?

  16. 16

    我试图结合三种不同的干净的URL规则

  17. 17

    我试图结合三种不同的干净的URL规则

  18. 18

    我如何分析三种机器学习模型的输出,这样我只能得到一个结果?

  19. 19

    如何使用timeit对三种算法计时?

  20. 20

    如何以三种不同的方式对齐弹性项目?

  21. 21

    如何停止我的一种类型的对象与其他类型的对象交互?

  22. 22

    Cocoapod的三种方案

  23. 23

    三种js性能

  24. 24

    。与三种模型结合

  25. 25

    三种js性能

  26. 26

    三种常用方法

  27. 27

    如何在三种语言的网站上以三种不同的语言使用Disqus评论?

  28. 28

    如何将一种类型的多个值合并为另一种类型的单个值

  29. 29

    我如何暗示一种类型可以与打字相媲美

热门标签

归档