当前位置: 首页 > 面试题库 >

如何透视SQL

朱雅惠
2023-03-14
问题内容

我不确定这是否称为“透视”。

我的SQL 2005表 [CustromerRoles]中的数据 是这样的:

CustId  RoleId
2        4
2        3
3        4
4        1
4        2

[角色] 表:

RoleId  Role
1        Admin
2        Manager
3        Support
4        Assistant

我想创建一个这样的视图:

SELECT * FROM [MYVIEW]将为我提供以下数据:

1和0将是位,因此我可以在UI显示屏上显示带有复选框的网格。

CustId  Admin Manager Support Assistant
2         0     0       1        1
3         0     0       0        1
4         1     1       0        0

到目前为止,我还不知道如何去做。


问题答案:

试试这个:

SELECT 
    CustId, 
    SUM(ISNULL(Admin,0)) AS Admin, 
    SUM(ISNULL(Manager,0)) AS Manager, 
    SUM(ISNULL(Support,0)) AS Support, 
    SUM(ISNULL(Assistant,0)) AS Assistant
FROM
(
    SELECT cr.CustId, cr.RoleId, Role, 1 AS a
    FROM CustromerRoles cr
    INNER JOIN Roles r ON cr.RoleId = r.RoleId
) up
PIVOT (MAX(a) FOR Role IN (Admin, Manager, Support, Assistant)) AS pvt
GROUP BY CustId

经过测试。它给出您想要的相同结果。



 类似资料:
  • 什么是透视? 如何透视? 这是枢轴吗? 长格式到宽格式? 我见过很多关于透视表的问题。即使他们不知道他们询问的是透视表,他们通常也是。几乎不可能写出一个包含旋转的所有方面的规范的问题和答案。 ...但我要试一试。 现有问题和答案的问题是,问题通常集中在一个细微差别上,而OP很难将其概括出来,以便使用现有的许多好答案。然而,没有一个答案试图给出一个全面的解释(因为这是一个令人生畏的任务) 从我的谷歌

  • 我开始使用Spark DataFrames,我需要能够枢轴的数据,以创建多个列1列多行。在Scalding中有内置的功能,我相信Python中的熊猫,但是我找不到任何新的Spark Dataframe。 我假设我可以编写某种自定义函数来实现这一点,但我甚至不知道如何开始,特别是因为我是Spark的新手。如果有人知道如何使用内置功能或如何在Scala中编写东西的建议来实现这一点,我们将不胜感激。

  • 问题内容: 我在下面的表A中,对于每个唯一的ID,都有三个带有某些值的代码。 我有第二个表B,其格式如下: 每个唯一ID仅一行。我想为第一个表中的每个ID填充第一个表A中的第二个表B。 对于上面的第一个表A,第二个表B应该显示为: 如何在单个SQL查询中实现此目标? 问题答案: 如果您的版本没有,您也可以使用以下命令: (在我的V6R1 DB2实例上工作,并有一个SQL Fiddle示例)。

  • 我使用Apache Spark 2.2.0和Scala。 我以这个问题为指导,在不使用pivot函数的情况下透视数据帧。 我需要在不使用pivot函数的情况下透视数据帧,因为我有非数字数据,而< code>pivot只对数字数据使用聚合函数,如< code>sum 、< code>min 、< code>max。我想在< code>pivot聚合中使用一个非数字列。 这是我的数据: 我希望它按<

  • 透视距离和透视位置可以更好地观察拥有 3D 效果的元素。 1. 官方解释 perspective 属性定义 3D 元素距视图的距离,以像素计算。该属性允许您改变 3D 元素查看 3D 元素的视图。 当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。 perspective-origin 属性定义 3D 元素所基于的 X 轴和 Y 轴。该属性允许您改变 3D 元素