主条款
适用于:砖的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_expression
。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
列命名使用column_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年东120年110年80年602018年西105年2545452019年西125年115年85年65年没有主——写相同的查询>选择一年,地区,总和(销售)过滤器(在哪里季度=1)作为第一季度,总和(销售)过滤器(在哪里季度=2)作为第二季,总和(销售)过滤器(在哪里季度=3)作为第二季,总和(销售)过滤器(在哪里季度=4)作为第四季度从销售集团通过一年,地区;2018年东One hundred.20.40402019年东120年110年80年602018年西105年2545452019年西125年115年85年65年——上主>选择一年,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));2018年One hundred.105年20.25404540452019年120年125年110年115年80年85年6065年没有主——写相同的查询>选择一年,总和(销售)过滤器(在哪里(季度,地区)=(1,“东”))作为q1_east,总和(销售)过滤器(在哪里(季度,地区)=(1,“西方”))作为q1_west,总和(销售)过滤器(在哪里(季度,地区)=(2,“东”))作为q2_east,总和(销售)过滤器(在哪里(季度,地区)=(2,“西方”))作为q2_west,总和(销售)过滤器(在哪里(季度,地区)=(3,“东”))作为q3_east,总和(销售)过滤器(在哪里(季度,地区)=(3,“西方”))作为q3_west,总和(销售)过滤器(在哪里(季度,地区)=(4,“东”))作为q4_east,总和(销售)过滤器(在哪里(季度,地区)=(4,“西方”))作为q4_west从销售集团通过一年,地区;2018年One hundred.105年20.25404540452019年120年125年110年115年80年85年6065年——总跨区域的列必须从输入中删除。>选择一年,第一季度,第二季,第三季,第四季度从(选择一年,季度,销售从销售)作为年代主(总和(销售)作为销售为季度在(1作为第一季度,2作为第二季,3作为第三季,4作为第四季度));2018年205年4585年85年2019年245年225年165年125年没有主——相同的查询>选择一年,总和(销售)过滤器(在哪里季度=1)作为第一季度,总和(销售)过滤器(在哪里季度=2)作为第二季,总和(销售)过滤器(在哪里季度=3)作为第三季,总和(销售)过滤器(在哪里季度=4)作为第四季度从销售集团通过一年;——主与多个聚合>选择一年,q1_total,q1_avg,q2_total,q2_avg,q3_total,q3_avg,q4_total,q4_avg从(选择一年,季度,销售从销售)作为年代主(总和(销售)作为总,avg(销售)作为avg为季度在(1作为第一季度,2作为第二季,3作为第三季,4作为第四季度));2018年205年102年。54522。585年42。585年42。52019年245年122年。5225年112年。5165年82年。5125年62年。5没有主——相同的查询>选择一年,总和(销售)过滤器(在哪里季度=1)作为q1_total,avg(销售)过滤器(在哪里季度=1)作为q1_avg,总和(销售)过滤器(在哪里季度=2)作为q2_total,avg(销售)过滤器(在哪里季度=2)作为q2_avg,总和(销售)过滤器(在哪里季度=3)作为q3_total,avg(销售)过滤器(在哪里季度=3)作为q3_avg,总和(销售)过滤器(在哪里季度=4)作为q4_total,avg(销售)过滤器(在哪里季度=4)作为q4_avg从销售集团通过一年;>创建临时视图人(id,的名字,年龄,类,地址)作为值(One hundred.,“约翰。”,30.,1,“街1”),(200年,“玛丽”,零,1,《街头2》),(300年,“迈克”,80年,3,“街3”),(400年,“丹”,50,4,“街4”);2018年205年102年。54522。585年42。585年42。52019年245年122年。5225年112年。5165年82年。5125年62年。5