2017-10-18 3 views
0

Ich habe viele Benutzer und Datum Zeit Spalte. Ich möchte die Mindest- und Höchstwerte jedes Benutzers für jedes Jahr und jeden Monat wissen?Sql Min Max Bereich Mit Überfunktion?

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, 

habe ich versucht, den Code unten, aber keine Verwendung entweder

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

Bearbeiten Sie Ihre Frage aggregieren und gruppieren möchten und sowohl die Probe liefern Daten und gewünschte Ergebnisse. Wie sehen die Originaldaten aus? –

+0

Was ist mit 'min (Income) over (Partition nach Name, Jahr (Datum), Monat (Datum))'? ;). –

+0

Vielen Dank :) Es funktioniert – vijayaragavan

Antwort

0

Ist das, was Sie wollen?

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

Danke :) Das funktioniert nur ich wollte es mit der Fensterfunktion berechnen. – vijayaragavan

0

Verwenden Sie einfach min und max-Funktion auf die Spalten, die Sie durch den Benutzer und den Monat des Datumsfunktionen

Keine Notwendigkeit, Fenster verwenden