2016-10-16 2 views
-1

ich ein Schema haben, die wie folgt aussieht:SQL: Das Finden der seltensten und am häufigsten Wert in einer Reihe von Beziehungen

Person

pid  name 

Aussehen

pid  latitude longitude datetime 

Klasse

pid  major (1/0)  type 

Ich versuche, ein Fu zu schreiben In Python finden Sie sowohl die seltensten als auch die gebräuchlichsten Personen für jede Klasse. Meine Funktion verwendet meinen Datenbanknamen Collections als Eingabe und ich versuche, eine Liste mit einem Tupel für jeden eindeutigen Klassentyp und Spalten mit den meisten und den wenigsten gebräuchlichen Personennamen zurückzugeben. Das ist, was ich bisher habe:

Ich habe eine Menge Probleme mit der Abfrage wegen seiner Unterabfrage ish Natur. Wenn mir hier jemand helfen könnte, würde ich das sehr schätzen.

+0

Das ist nicht wie Python überhaupt nicht sehen. Ist es JS oder Python oder eine seltsame hybride Sprache? Außerdem macht Ihr Datenmodell keinen Sinn Was ist das 'Class'-Modell, was ist' pid', müssen diese Dinge erklärt werden, bevor wir Ihnen bei Ihrer Anfrage helfen können. Vielleicht helfen einige Beispieldaten. – 2ps

+0

Mein Datenmodell ist nur ein relationales Tabellenschema. Person, Aussehen und Klasse sind beide Namen von Tabellen und die PID und Breite zum Beispiel sind nur Spaltennamen. Der "def rareCommon()" Teil ist eine Funktion in Python, die ich geschrieben habe. Ich benutze SQLlite. – user3648245

Antwort

0

Nur ein Stich in die Dunkelheit ... Ich stimme @ 2ps Kommentar - Sie sind ein bisschen Licht im Detail.

Die SQL-Teil könnte ein wenig aussehen wie

SELECT pc.pid, 
     MIN(pc.p_count) rare, 
     MAX(pc.p_count) most_common 
    FROM (SELECT a.pid, 
       COUNT(*) p_count 
      FROM appearance a 
     GROUP BY a.pid) pc 
GROUP BY pid 
+0

Ich habe einige Informationen zu 2ps Anliegen hinzugefügt. Beeinflusst das überhaupt das SQL? – user3648245

Verwandte Themen