Heim >Datenbank >MySQL-Tutorial >Wie berechnet man mit SQL den Durchschnitt eines Feldes für jede eindeutige Kombination zweier anderer Felder?
SQL-Abfrage mit AVG und GROUP BY: Durchschnittswerte für jedes Feld extrahieren
Sie suchen eine SQL-Abfrage, die bestimmte Informationen aus einer Tabelle extrahiert , nämlich der Durchschnitt des Felds „val“ für jeden eindeutigen Wert „id“ und „pass“.
Um dies zu erreichen, können Sie eine einfache, aber effiziente Abfrage verwenden:
<code class="sql">SELECT id, pass, AVG(val) AS val_1 FROM data_r1 GROUP BY id, pass;</code>
Diese Abfrage gruppiert die Daten nach „id“ und „pass“ und berechnet den Durchschnittswert von „val“ für jede Kombination. Die resultierende Tabelle enthält eine Zeile für jedes eindeutige Paar von „ID“- und „Pass“-Werten.
Alternativ, wenn Sie eine einzelne Zeile für jede eindeutige „ID“ mit den Durchschnittswerten für alle „Pass“-Werte bevorzugen , verwenden Sie diese Abfrage:
<code class="sql">SELECT d1.id, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 1) as val_1, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 2) as val_2, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 3) as val_3, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 4) as val_4, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 5) as val_5, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 6) as val_6, (SELECT IFNULL(ROUND(AVG(d2.val), 4) ,0) FROM data_r1 d2 WHERE d2.id = d1.id AND pass = 7) as val_7 from data_r1 d1 GROUP BY d1.id</code>
Diese Abfrage verwendet eine verschachtelte Unterabfrage für jeden „Pass“-Wert, um den Durchschnitt zu berechnen. Anschließend werden die Ergebnisse nach „ID“ zusammengefasst und so eine konsolidierte Ansicht der Daten bereitgestellt.
Das obige ist der detaillierte Inhalt vonWie berechnet man mit SQL den Durchschnitt eines Feldes für jede eindeutige Kombination zweier anderer Felder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!