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

如何在DB2中透视表?

蔺宇
2023-03-14
问题内容

我在下面的表A中,对于每个唯一的ID,都有三个带有某些值的代码。

 ID    Code    Value
---------------------
 11       1       x
 11       2       y
 11       3       z
 12       1       p
 12       2       q
 12       3       r
 13       1       l
 13       2       m
 13       3       n

我有第二个表B,其格式如下:

Id   Code1_Val   Code2_Val    Code3_Val

每个唯一ID仅一行。我想为第一个表中的每个ID填充第一个表A中的第二个表B。

对于上面的第一个表A,第二个表B应该显示为:

Id   Code1_Val   Code2_Val    Code3_Val
---------------------------------------------
11       x          y             z
12       p          q             r
13       l          m             n

如何在单个SQL查询中实现此目标?


问题答案:

如果您的版本没有DECODE(),您也可以使用以下命令:

INSERT INTO B (id, code1_val, code2_val, code3_val)  
WITH Ids (id) as (SELECT DISTINCT id
                  FROM A) -- Only to construct list of ids

SELECT Ids.id, a1.value, a2.value, a3.value
FROM Ids -- or substitute the actual id table
JOIN A a1
     ON a1.id = ids.id
        AND a1.code = 1
JOIN A a2
     ON a2.id = ids.id
        AND a2.code = 2
JOIN A a3
     ON a3.id = ids.id
        AND a3.code = 3

(在我的V6R1 DB2实例上工作,并有一个SQL Fiddle示例)。



 类似资料:
  • 问题内容: 我不确定这是否称为“透视”。 我的SQL 2005表 [CustromerRoles]中的数据 是这样的: [角色] 表: 我想创建一个这样的视图: SELECT * FROM [MYVIEW]将为我提供以下数据: 1和0将是位,因此我可以在UI显示屏上显示带有复选框的网格。 到目前为止,我还不知道如何去做。 问题答案: 试试这个: 经过测试。它给出您想要的相同结果。

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

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

  • 问题内容: 如果我有一个看起来像这样的MySQL表: 是否可以运行MySQL查询以获取如下输出: 这个想法可能会有所不同,因此输出列的数量应反映出这一点,每列/ 每对对应一列,然后每列的匹配数。我不确定这是否称为数据透视表,但有人建议这样做吗? 问题答案: 这基本上 是 数据透视表。 可以在此处找到有关如何实现此目标的不错的教程:http : //www.artfulsoftware.com/in

  • 我下面是一个教程,名为在laracast中的增量API由Jeffrey Way。 Laravel 4 faker类种子和Laravel 5.4之间的编码不同。 我仍然遵循教程“Seeders Reloated”中相同的代码行。现在,我只能说“LessonTagTableSeeder类不存在” 标签进料器 LessonTag表播种机 数据库搜索 我能够使用php artisan db:seed--c

  • 我正在组装一个简单的购物车系统,使用Laravel和Vue.js,来出售照片。每张照片都有不同的尺寸,每个尺寸的价格都不同。 我有以下表格: 我正在使用Vue.js对我的购物车控制器进行API调用,以操纵购物车。当用户单击“添加到篮子”按钮时,它会传递照片id和大小id。当然,我想从数据库而不是客户端获取所选项目的价格,以防止任何无礼行为,这自然意味着查询pivot表。 我的问题是,使用传递给控制