如何声明更改的列名?
我从数据库中获取了一些数据并且我对过去12个月感兴趣,所以我只接受发生的事件,让我们在2016-07' 2016年 - 06'等等...
然后,我希望我的桌子看起来像这样:
event type | 2016-07 | 2016-06
-------------------------------
A | 12 | 13
B | 21 | 44
C | 98 | 12
如何实现使用以前的YYYY-MM模式命名列的效果,请记住,具有该查询的报表可以随时执行,因此它会发生变化。
仅针对上个月的简化查询:
select distinct
count(event),
date_year_month,
event_name
from
data_base
where date_year_month = TO_CHAR(add_months(current_date, -1),'YYYY-MM')
group by event_name, date_year_month
答案 0 :(得分:0)
我不认为有一种自动转换年 - 月列的方法,并根据数据动态更改结果中的列数。
但是,如果您正在寻找透视解决方案,那么您可以在netezza中使用表函数。
select event_name, year_month, event_count
from event_counts_groupby_year_month, table(inza.inza.nzlua('
local rows={}
function processRow(y2016m06, y2016m07)
rows[1] = { 201606, y2016m06 }
rows[2] = { 201607, y2016m07 }
return rows
end
function getShape()
columns={}
columns[1] = { "year_month", integer }
columns[2] = { "event_count", double }
return columns
end',
y2016m06, y2016m07));
您可以在此基础上构建一个包装器,以使用shell脚本根据表中存在的年份动态生成查询。