2016-11-22 8 views
-3

Bitte mich Below mit der Abfrage helfen sind die Tabelle und Anforderungsdetailspostgresql Abfrage

enter image description here

+2

Bitte klären Sie, ob Sie eine Lösung für MySQL oder PostgreSQL wollen. Sie haben die Frage mit beiden Produkten markiert, aber die Lösungen für beide können unterschiedlich sein. Ihr Fragetitel sagt 'postgresql query' aber warum markieren Sie die Frage MySQL? –

+2

Poste deinen Code, nicht Bilder deines Codes. – WillardSolutions

+0

https://stackoverflow.com/help/how-to-ask –

Antwort

1

Sie sollten Fensterfunktionen verwenden

select alph_letter, alph_group, min(alph_date) OVER (PARTITION BY alph_group) AS min_date from alphabets; 
+0

Danke für die schnelle Lösung –

1

Sie die Windowing-Variante von min verwenden:

SELECT letter, group, MIN(date) OVER (PARTITION BY group) 
FROM alphabets 
1

Hier ist ein anderer Weg, es zu tun :). Ich habe SQL Server verwendet, aber die Syntax sollte für dieses Problem ähnlich sein:

SAMPLE DATA:

IF OBJECT_ID('tempdb..#Alphabets') IS NOT NULL 
    DROP TABLE #Alphabets; 

CREATE TABLE #Alphabets(Letter VARCHAR(1) 
        , Groups VARCHAR(3) 
        , Dates DATE); 

INSERT INTO #Alphabets 
VALUES 
     ('A' 
    , 'abc' 
    , '20161026'), 
     ('B' 
    , 'abc' 
    , '20161027'), 
     ('C' 
    , 'abc' 
    , '20161028'), 
     ('D' 
    , 'def' 
    , '20161101'), 
     ('E' 
    , 'def' 
    , '20161030'); 

QUERY:

SELECT B.Letter 
    , B.Groups 
    , MinDates 
FROM 
     (SELECT MIN(Dates) AS MinDates 
      , Groups 
     FROM #Alphabets 
     GROUP BY Groups) AS A 
     INNER JOIN #Alphabets AS B ON A.Groups = B.Groups; 

ERGEBNISSE:

enter image description here