Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中合并数据集的两个版本_Sql_Teradata - Fatal编程技术网

在SQL中合并数据集的两个版本

在SQL中合并数据集的两个版本,sql,teradata,Sql,Teradata,我有这样的数据: email | ticket | date a | 1 | 1/1/2015 a | 1 | 2/1/2015 a | 3 | 5/6/2016 b | 1 | 3/4/2016 b | 2 | 7/9/2016 b | 2 | 3/2/2016 我想通过两种不同的潜在布局,按不同的日期对门票进行汇总: email | ticket | date a |

我有这样的数据:

email | ticket | date
a     |    1   | 1/1/2015
a     |    1   | 2/1/2015
a     |    3   | 5/6/2016
b     |    1   | 3/4/2016
b     |    2   | 7/9/2016
b     |    2   | 3/2/2016
我想通过两种不同的潜在布局,按不同的日期对门票进行汇总:

email | ticket | date
a     |    2   | 2015
a     |    3   | 2016
b     |    5   | 2016

email | 2015 tickets | 2016 tickets
a     |    2         |     3
b     |    0         |     5

你只需要加总

--Query 1
select email,sum(ticket),extract(year from date) 
from tablename
group by 1,3

--Query 2
select email
,sum(case when extract(year from date) = 2015 then ticket else 0 end)
,sum(case when extract(year from date) = 2016 then ticket else 0 end)
from tablename
group by email

请发布您的尝试并标记您的dbms。第一个是一个简单的聚合,但第二个是,您是否期望动态透视?如果是这样,您使用的是什么RDMS?RDMS是Teradata。我没有尝试过。不期望动态轴心,但不确定你的意思。@NBC他问你是否允许脚本添加未来年份,而不是手动更改。假设我们在2018年,我没有按序数分组+1@JohnCappelletti .. 事实上,这是我第一次在这里使用它。