Heim >Datenbank >MySQL-Tutorial >Wie berechnet man mit SQL den Durchschnitt eines Feldes für jede eindeutige Kombination zweier anderer Felder?

Wie berechnet man mit SQL den Durchschnitt eines Feldes für jede eindeutige Kombination zweier anderer Felder?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 10:16:02352Durchsuche

How to calculate the average of a field for each unique combination of two other fields using SQL?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn