行轉列:
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...