2017-04-10 3 views
0

Ich habe Probleme beim Zurückgeben einer Abfrage, die erfolgreich alle Bindungen eines maximalen Werts zurückgibt. Der Maximalwert stammt aus einer Interior-Abfrage. My SQL ist unten:SQLite Handle Max() Bindungen

SELECT NAME, 
     Max(y.val) 
FROM (SELECT NAME, 
       Count(*) AS val 
     FROM numbers N 
     JOIN cards C 
      ON C.mid = N.mid 
     GROUP BY NAME) AS y 

Derzeit ist es nur einen einzigen Max-Wert zurückgibt, aber ich brauche es zurück, wenn es ein Unentschieden. Würde mir jemand mit sqlite helfen können?

+0

Zeigen Sie uns DB-Schema, Beispieldaten und erwartete Ausgabe. \t Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http://spaghettiba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie die Qualität Ihrer Fragen verbessern und bessere Antworten erhalten. –

Antwort

2

Die Idee hier ist y zu isolieren und wieder verwenden es sowohl die maximale Zählung finden und dann mit dem gleichen Zählwert alle Zeilen entsprechen:

WITH y as (SELECT name, COUNT(*) as val 
      FROM Numbers N 
      JOIN Cards C on C.mid = N.mid 
      GROUP BY name) 
SELECT name, val 
FROM y 
WHERE (SELECT MAX(val) from y)=val; 
+0

funktioniert! als du! – SJR59