Mik: Alternativquery gesucht

Beitrag lesen

Hallo,

Dein Query:

SELECT Land

FROM Athlet
GROUP BY Land
ORDER BY COUNT(DISTINCT(Name)) DESC
LIMIT 1


>   
  
  

> Meine schlichte Lösung wäre ja gewesen, `SELECT Land, count(Land) ... GROUP BY Land ORDER BY COUNT(Land)`{:.language-sql}  
>   
  
... und worin sollen sich Eure Lösungen unterscheiden (mal von der Tatsache abgesehen, daß das DISTINCT von Martin in diesem Falle falsch ist, so man davon ausgeht, daß die Tabelle keine Duplikate enthält, aber z.b. Athleten gleichen Namens)?  
  
Und mal vorausgesetzt, daß kein Name doppelt vorkäme, sind Eure Lösungen sogar identisch, bis auf die Tatsachen, daß Svens Lösung 2 Fragen nicht beantwortet:  
  
1\. Die Ausgangsfrage "Welches Land stellt die meisten Athleten?" (Sven, Du sortierst zwar, aber gibst das Land nicht als Lösung aus, sondern eine Ergebnistabelle, die danach noch ausgewertet werden müsste. Das beantwortet aber die Ausgangsfrage nicht.  
  
  
... und ...  
  
2\. Die eigentliche Frage des TO, nämlich, ob sich die Aufgabe auch \_ohne LIMIT\_ lösen läßt.  
  
~~~sql
  
SELECT Land, count( Land ) ui  
FROM athlet  
GROUP BY Land  
HAVING ui = (  
SELECT max( a )  
FROM (  
SELECT count( * ) AS a  
FROM athlet  
GROUP BY Land ) t  
)  

... sollte z.b. das Land mit den meisten Athleten ausgeben.

Lukas