Danke, dass Sie mir geholfen haben, ich lerne immer noch SQL. Ich habe eine Haupttabelle namens JEDI und versuche, spezifische Informationen zur Verwendung von Inner JOIN- und Where-Bedingungen zu erhalten. Insbesondere möchte ich die Anzahl der JEDIs, die einen bestimmten Planeten zwischen bestimmten Daten besucht haben, und deren Level ermitteln.
Ich möchte dann mit einem Inner JOIN in derselben Tabelle filtern und mir nur die Ergebnisse für JEDIs anzeigen, die mehr als 1 Padawan auf diesem bestimmten Planeten haben. Ich glaube, die zweite Bedingung schreckt mich ab. Ich habe den von mir verwendeten Code und die Beispieldatentabelle eingefügt
Mein Ergebnis sollte nur 2 sein, Meister Obi-Wan ist der Einzige, der die Kriterien erfüllt
SELECT COUNT(jedi.jedi_id),jedi.rank_id FROM jedi WHERE jedi.date >='2022-01-01' AND jedi.date <='2022-06-31' AND jedi.planet='Tatoine' INNER JOIN jedi ON jedi.jedi_id WHERE COUNT(jedi.padawan)>=2 GROUP BY jedi.rank_id
首先,您需要对列进行分组并使用
HAVING COUNT
来计算重复值。注意:仅当每个
jedi_id
具有唯一值jedi.padawan
时,此功能才有效。此查询适用于这些场景。但是,您可以通过添加另一个计算唯一
jedi.padawan
的条件来改进查询,以便每个jedi.jedi_idjedi.padawan
值/code> 不会被包含您可以使用必须替换此 INNER JOIN jedi ON jedi.jedi_id WHERE COUNT(jedi.padawan)>=2