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
  • 相关阅读:
    Android 密匙库导出
    Android常用布局
    asp.net hessian + android hessdroid
    Android文件上传
    android,gridview
    Android文件下载
    Andriod 之数据获取
    java类的泛型DAO
    Spring之AOP编程
    mysql中如何统计某字段里某个字符的个数
  • 原文地址:https://www.cnblogs.com/Monkey18/p/13883277.html
Copyright © 2011-2022 走看看