select name,month,sum(income),grouping(name),grouping(month) from test groupby cube(name,month) orderby name,month nulls last;
selectcasewhen grouping(name) = 1andmonthisnullthen'总计'when grouping(name) = 1andmonthisnotnullthen'按月统计'else
name
endas name,
casewhen grouping(month) = 1and name isnotnullthen'按人统计'elsemonthendasmonth,
sum(income)
from test
groupby cube(name, month)
orderby name, month nulls last
select name,
month,
income,
lag(income, 1, 0) over(partition bymonth order by income) lag1, --分组内前一行的income字段
lag(income, 2, 0) over(partition bymonth order by income) lag2, --分组内前两行的income字段
lead(income, 1, 0) over(partition bymonth order by income) lead1,--分组内后一行的income字段
lead(income, 2, 0) over(partition bymonth order by income) lead2 --分组内后两行的income字段from test