2016-08-03 7 views
0

Ich habe Tabelle wie folgt:Oracle: Zählen Sie die Summe erhalten und auf Basis von Mindestdatumswert

Tabelle 1 (Column1, column2, column3, Datum)

Ich möchte Graf erhalten (Spalte 1) & Summe (Spalte2) und die gleiche Anzahl/Summe, wenn das Datum größer als der Mindestdatumswert in der Datumsspalte ist.

Obwohl die 4 erforderlichen Wert kann durch eine Bedingung auf Spalte 3.

Column 1 , Column 2 , Column 3 , Date 
A   1   1   5/5/2016 
G   5   0   5/10/2016 
B   1   2   5/10/2016 
A   12   1   5/10/2016 
D   1   1   5/5/2016 
A   1   1   5/11/2016 
C   7   1   5/5/2016 
C   1   1   5/12/2016 
E   10   2   5/10/2016 

Ich möchte gesteuert werden, wenn Filter auf Spalte 3 = 1 erhalten folgendes Ergebnis:

Count (1) , Sum(2) , Count(1) when date greater than minimum ,Count(2) when date greater than minimum 
3   , 23  , 2          , 14 

Ich habe versucht, Use Case Put muss ich nicht nach Werten gruppieren.

wie kann ich generieren Abfrage oben genannten Anforderungen in oracle

+1

Bearbeiten Sie Ihre Frage und liefern Sie Beispieldaten und gewünschte Ergebnisse. –

Antwort

1

erfüllen Sie case verwenden können. Wie Sie beschreiben:

select count(column1), sum(column2), 
     count(case when date > mindate then column1 end), 
     sum(case when date > mindate then column2 end) 
from (select t.*, min(date) over() as mindate 
     from table1 t 
    ) t; 

Dieser verwendet eine Fensterfunktion das Mindest Datum zu erhalten, die in den case verwendet wird.

+0

danke für deine geschätzte hilfe, wenn ich bedingung insgesamt für spalte 3 stellen soll sollte ich es doch zweimal machen? Eins nach innen Datum auswählen und eins nach innen Gesamtauswahl? –

+0

Auch dies wird minimale Gesamtsäule nicht auf Spalte 3 Zustand –

+0

@AhmedEmad erhalten. . . Ich verstehe Ihre Frage zu sein: "Ich möchte zählen (Spalte 1) & Summe (Spalte2) und die gleiche Anzahl/Summe, wenn das Datum größer ist als der minimale Datumswert in der Datumsspalte." Wenn Sie eine andere Frage haben, fragen Sie sie als * eine andere * Frage und nicht in einem Kommentar. –