主條款
適用於:磚的SQL磚運行時
屬性的行進行轉換table_reference通過將指定列列表的惟一值旋轉到單獨的列中。
語法
table_reference主({aggregate_expression[[作為]agg_column_alias]}[,...]為column_list在(expression_list))column_list{column_name|(column_name[,...])}expression_list{表達式[作為][column_alias]|{(表達式[,...])[作為][column_alias]}[,...])}
參數
對象的主題
主
操作。所有列都引用的任何類型的表達式
table_reference
是參數聚合函數.聚合結果的可選別名。如果未指定別名,則
主
生成基於的別名aggregate_xpression
.column_list
要旋轉的列的集合。
一欄來自
table_reference
.
expression_list
映射從
column_list
到列別名。具有與對應對象共享最小公共類型的類型的文字表達式
column_name
.的數量表達式在每個元組中必須匹配的數目
column_names
在column_list
.可選的別名,指定生成的列的名稱。如果未指定別名
主
屬性生成別名表達式
年代。
結果
臨時表的形式如下:
對象的中間結果集中的所有列
table_reference
並沒有在任何aggregate_expression
或column_list
.這些列是分組列。
為每一個
表達式
元組和aggregate_expression
的組合,主
生成一列。類型是的類型aggregate_expression
.如果隻有一個
aggregate_expression
列的名稱為usingcolumn_alias
.否則,命名column_alias_agg_column_alias
.單元格中的值是
aggregation_expression
使用一個過濾器(在哪裏column_list在(表達式,…)
.
例子
——一個非常基本的支點——給定一個按季度顯示銷售額的表,返回一個每年跨季度返回銷售額的表。>創建臨時視圖銷售(一年,季度,地區,銷售)作為值(2018,1,“東”,One hundred.),(2018,2,“東”,20.),(2018,3.,“東”,40),(2018,4,“東”,40),(2019,1,“東”,120),(2019,2,“東”,110),(2019,3.,“東”,80),(2019,4,“東”,60),(2018,1,“西方”,105),(2018,2,“西方”,25),(2018,3.,“西方”,45),(2018,4,“西方”,45),(2019,1,“西方”,125),(2019,2,“西方”,115),(2019,3.,“西方”,85),(2019,4,“西方”,65);>選擇一年,地區,第一季度,第二季,第三季,第四季度從銷售主(總和(銷售)作為銷售為季度在(1作為第一季度,2作為第二季,3.作為第三季,4作為第四季度));2018東One hundred.20.40402019東12011080602018西1052545452019西1251158565—同樣的查詢沒有使用PIVOT>選擇一年,地區,總和(銷售)過濾器(在哪裏季度=1)作為第一季度,總和(銷售)過濾器(在哪裏季度=2)作為第二季,總和(銷售)過濾器(在哪裏季度=3.)作為第二季,總和(銷售)過濾器(在哪裏季度=4)作為第四季度從銷售集團通過一年,地區;2018東One hundred.20.40402019東12011080602018西1052545452019西1251158565—也以地區為中心>選擇一年,q1_east,q1_west,q2_east,q2_west,q3_east,q3_west,q4_east,q4_west從銷售主(總和(銷售)作為銷售為(季度,地區)在((1,“東”)作為q1_east,(1,“西方”)作為q1_west,(2,“東”)作為q2_east,(2,“西方”)作為q2_west,(3.,“東”)作為q3_east,(3.,“西方”)作為q3_west,(4,“東”)作為q4_east,(4,“西方”)作為q4_west));2018One hundred.10520.2540454045201912012511011580856065—同樣的查詢沒有使用PIVOT>選擇一年,總和(銷售)過濾器(在哪裏(季度,地區)=(1,“東”))作為q1_east,總和(銷售)過濾器(在哪裏(季度,地區)=(1,“西方”))作為q1_west,總和(銷售)過濾器(在哪裏(季度,地區)=(2,“東”))作為q2_east,總和(銷售)過濾器(在哪裏(季度,地區)=(2,“西方”))作為q2_west,總和(銷售)過濾器(在哪裏(季度,地區)=(3.,“東”))作為q3_east,總和(銷售)過濾器(在哪裏(季度,地區)=(3.,“西方”))作為q3_west,總和(銷售)過濾器(在哪裏(季度,地區)=(4,“東”))作為q4_east,總和(銷售)過濾器(在哪裏(季度,地區)=(4,“西方”))作為q4_west從銷售集團通過一年,地區;2018One hundred.10520.2540454045201912012511011580856065—要跨區域聚合,列必須從輸入中移除。>選擇一年,第一季度,第二季,第三季,第四季度從(選擇一年,季度,銷售從銷售)作為年代主(總和(銷售)作為銷售為季度在(1作為第一季度,2作為第二季,3.作為第三季,4作為第四季度));20182054585852019245225165125—同樣的查詢沒有PIVOT>選擇一年,總和(銷售)過濾器(在哪裏季度=1)作為第一季度,總和(銷售)過濾器(在哪裏季度=2)作為第二季,總和(銷售)過濾器(在哪裏季度=3.)作為第三季,總和(銷售)過濾器(在哪裏季度=4)作為第四季度從銷售集團通過一年;—帶有多個聚合的PIVOT>選擇一年,q1_total,q1_avg,q2_total,q2_avg,q3_total,q3_avg,q4_total,q4_avg從(選擇一年,季度,銷售從銷售)作為年代主(總和(銷售)作為總計,avg(銷售)作為avg為季度在(1作為第一季度,2作為第二季,3.作為第三季,4作為第四季度));2018205102.54522.58542.58542.52019245122.5225112.516582.512562.5—同樣的查詢沒有PIVOT>選擇一年,總和(銷售)過濾器(在哪裏季度=1)作為q1_total,avg(銷售)過濾器(在哪裏季度=1)作為q1_avg,總和(銷售)過濾器(在哪裏季度=1)作為q2_total,avg(銷售)過濾器(在哪裏季度=1)作為q2_avg,總和(銷售)過濾器(在哪裏季度=1)作為q3_total,avg(銷售)過濾器(在哪裏季度=1)作為q3_avg,總和(銷售)過濾器(在哪裏季度=1)作為q4_total,avg(銷售)過濾器(在哪裏季度=1)作為q4_avg從銷售集團通過一年;>創建臨時視圖人(id,的名字,年齡,類,地址)作為值(One hundred.,“約翰。”,30.,1,“街1”),(200,“瑪麗”,零,1,《街頭2》),(300,“邁克”,80,3.,“街3”),(400,“丹”,50,4,“街4”);2018205102.54522.58542.58542.52019245122.5225112.516582.512562.5