ich für einen SQL-Test studierte und im Vorjahr hat die letzte Frage:die Min() ein Grafen Rückflug()
Namen die Schüler, die die geringste Anzahl von Papieren studiert hat. Wie viele Papiere haben sie studiert?
Bisher ist dies die SELECT-Abfrage, die ich erstellt haben:
select min(Full_Name), min(Amount)
from (select st.ST_F_Name & ' ' & st.ST_L_Name as Full_Name, count(*) as Amount
from (student_course as sc
inner join students as st
on st.ST_ID=sc.SC_ST_ID)
group by st.ST_F_Name & ' ' & st.ST_L_Name)
Das funktioniert perfekt für die Rückgabe des Ergebnisses ich will, aber ich bin mir nicht sicher, ob dies ist die Art, wie ich soll mache diese Abfrage? Ich habe das Gefühl, min() auf dem Full_Name zu nennen, könnte unter bestimmten Umständen auf mich zurückfallen. Gibt es einen besseren Weg, dies zu tun? (Dies ist in MS Access aus unbekannten Gründen)
Es tut, weil es nur einen einzigen Schüler in diesem Fall zurückgeben gibt. Aber was, wenn ich mehrere Studenten mit der geringsten Anzahl von Papieren hätte? Von dem, was ich weiß, würde dies nur einen einzigen Schüler und nicht die anderen zurückgeben. Wie könnte ich es so schreiben, dass es alle zurückgibt, wenn es mehrere gibt? – Syzorr
Es gibt zwei Möglichkeiten: 1. Verwenden Sie, wo kein Schüler mit einer höheren Anzahl von gelesenen Papieren existiert, 2. finden Sie das Minimum und verbinden Sie die Tabelle mit den Zählungen erneut, um die Schülernamen zu erhalten, die diese zählen. Ohne 'mit' sind beide Abfragen ziemlich nervig zu schreiben. – maraca
Übrigens gibt es eine Inkonsistenz in der Frage selbst: "Student" und "hat" ist Singular, aber "haben" und "sie" ist Plural. (Wir möchten 'mit' verwenden, da beide Methoden zweimal auf die Zwischentabelle mit den Zählwerten verweisen, dann müssen wir sie nicht zweimal schreiben.) – maraca