zoukankan      html  css  js  c++  java
  • 使用kettle行转列

    生成测试数据

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[test](
        [id] [int] NULL,
        [name] [varchar](20) NULL,
        [quarter] [int] NULL,
        [profile] [int] NULL
    ) ON [PRIMARY]
    
    GO
    SET ANSI_PADDING OFF
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (1, N'a', 1, 1000)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (1, N'a', 2, 2000)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (1, N'a', 3, 4000)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (1, N'a', 4, 5000)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (2, N'b', 1, 3000)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (2, N'b', 2, 3500)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (2, N'b', 3, 4200)
    GO
    INSERT [dbo].[test] ([id], [name], [quarter], [profile]) VALUES (2, N'b', 4, 5500)
    GO
    View Code

    总体结构如下:

    第一步 :新建转换,在"核心转换"里的"输入"选择"表输入",连接数据库,编写sql语句

    第二步:在"转换"里选择步骤"列转行"

    图中箭头指向,关键字值为原表中关键字段的取值,对字段要记得聚合操作

    第三步:字段选择,修改字段名称

    第四步:空操作

    完成后点击键盘"F9",查看结果如下

    另附上数据库查询方法:

    SELECT id,
           name,
           [1] AS "Q1",
           [2] AS "Q2",
           [3] AS "Q3",
           [4] AS "Q4"
    FROM TEST
        PIVOT
        (
            SUM(profile)
            FOR quarter IN ([1], [2], [3], [4])
        ) AS pvt;
    View Code
  • 相关阅读:
    TC(Total Commander)文件管理神器
    友盟 集成测试
    Channel SDK (渠道SDK) for Unity
    Prefab Assist插件
    Android资源(图片)命名规范
    FragmentTransaction的commit的异步操作
    面试2
    Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍
    Android必知必会-Android Studio修改包名
    Http标准协议Android网络框架——NoHttp
  • 原文地址:https://www.cnblogs.com/Monkey18/p/13883277.html
Copyright © 2011-2022 走看看