2016-04-10 9 views
1

Ich habe zwei Tabellen: Läufer (r_name (Primärschlüssel), Meilen, week_id) und WEEKDAYS (did, day_of_week). runner.week_id verweist auf Wochentage.did.Basic SQL Aggregat

Wie finde ich den Wochentag mit den längsten durchschnittlichen Meilen?

Antwort

0

Erstellen Sie eine innere Abfrage, die GROUPS-Läufer in den Wochentag verwendet. Verwenden Sie die Reihenfolge mit Limit, um den oberen Eintrag nach Woche_ID auszuwählen. Dann wählen Sie die Woche mit dieser ID:

SELECT * 
FROM weekdays 
WHERE 
week_id IN (
    SELECT week_id 
    FROM runner 
    GROUP BY week_id 
    ORDER BY SUM(miles) DESC 
    LIMIT 1 
) 

Mit einem Join:

SELECT * 
FROM weekdays 
JOIN runner 
ON runner.week_id = weekdays.id 
GROUP BY runner.week_id 
ORDER BY SUM(runner.miles) DESC 
LIMIT 1 
+0

Wie schreibe ich diese Abfrage ohne Unterabfragen? – awd

+0

Verwenden Sie ein Join. Siehe Bearbeiten. –