行轉列 列轉行

2022-08-20 07:36:13 字數 1028 閱讀 8275

行轉列:

select t.*, t.rowid from test1 t

id  c1    c2   c3

1  小紅  數學  10  

2  小紅  語文  20  

3  小欄  數學  15  

4 小欄 語文 25

--test1

oracle :  select c1,to_char(wm_concat(c2)) c2 from test1 group by c1

mysql:    select c1,group_concat(c2) c2 from test1 group by c1

--結果:

c1      c2

小紅 數學,語文

小欄 數學,語文

--test2

select c1, max(math) as math, max(yuwen) as yuwen

from (select c1,

case

when c2 = '數學' then

c3end as math,

case

when c2 = '語文' then

c3end as yuwen

from test1)

group by c1

--結果: 

c1  數學 語文

小紅 10 20

小欄 15 25

--test3

select *

from (select c2, c3 from test1) pivot(sum(c3) for c2 in('數學', '語文'))

--結果:

數學  語文

25    45

--test4

select *

from (select c1, c2,c3 from test1) pivot(max(c3) for c2 in('數學', '語文'))

--結果:

c1  數學 語文

小紅 10 20

小欄 15 25

hive 列轉行 HQL 行轉列,列轉行

1 相關函式 concat string a col,string b col 返回輸入字串連線後的結果,支援任意個輸入字串 concat ws separator,str1,str2,它是乙個特殊形式的 concat 第乙個引數剩餘引數間的分隔符。分隔符可以是與剩餘引數一樣的字串。如果分隔符是 n...

python 列轉行 SQL 行轉列,列轉行

sql 行轉列,列轉行 行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。行列轉換就是如下圖所示兩種展示形式的互相轉換 行轉列假如我們有下表 select from student pivot sum score for subject in 語文,數學,英語 通過上面 sql...

Hive行轉列,列轉行

下面舉兩個例子 例一 行轉列 資料 a b 1 a c 2 a b 3 c d 4 c d 5 c d 6 轉化為 a b 1,2,3 c d 4,5,6 創表hive create table test1 col1 string,col2 string,col3 string row format...