使用kettle行轉列

2022-07-10 01:57:14 字數 2130 閱讀 3443

生成測試資料

set ansi_nulls on

goset quoted_identifier on

goset ansi_padding on

gocreate table [dbo].[test](

[id] [

int] null,

[name] [varchar](

20) null,

[quarter] [

int] null,

[profile] [

int] null

) on [primary]

goset ansi_padding off

goinsert [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

關於kettle行轉列實用教程

一.行轉列 1.資料庫指令碼 create table studentinfo studentno int,subject varchar 10 grade int insert into studentinfo values 201105545,語文 80 insert into studenti...

mysql行轉列 subs mysql 行轉列

存在表score,記錄學生的考試成績,如下圖所示 現要求以 學生姓名,語文,數學,英語 這種格式顯示學生成績,如下圖所示 具體步驟如下 1 首先,使用case when函式輸出單個課程的成績 case when course 語文 then score end as 語文 case when cou...

sql 行轉列使用pivot

select from select 商品名稱,銷售數量,月份 from tb helenzhou as t1 被行轉列的字段先在這裡列出來 pivot sum 銷售數量 for 月份 in 1 2 as t2 goup by 除了銷售數量和月份之外的的被上面列出來的其他字段 privot sum ...