2017-10-18 47 views
0

我有许多用户和日期时间列。我想知道每个用户每年和每个月的最小值和最大值?Sql最小范围有超功能?

name  date  Income  Expense 
Vijay  12-10-2017 10   8 
Vijay  16-04-2017 25   12 

year(date) as Y_year, 
month(date) as M_Month, 

我尝试下面的代码,但没有用任何

min(Income)over(PARTITION by (name, Y_year,M_Month)) as min_income_of_month, 
Max(Expense)over(PARTITION by (name, Y_year,M_Month)) as Max_Expense_of__month 
+0

编辑你的问题,同时提供样品的一个月数据和期望的结果。原始数据是什么样的? –

+0

'min(收入)结束(按名称划分,年(日期),月份(日期))''? )。 –

+0

非常感谢:)它的工作原理 – vijayaragavan

回答

0

这是你想要的吗?

select name, year(date) as Y_year, month(date) as M_Month, 
     min(income), max(income), min(expense), max(expense) 
from t 
group by name, year(date), month(date) 
order by name, Y_year, M_Month; 
+0

谢谢:)这只是我想用窗口函数来计算它。 – vijayaragavan

0

只需使用最小和最大功能上要聚集列和组用户和日期

无需使用窗口功能