Difference between pages "ABS/de" and "AVG/de"

From SQLZOO
< ABS(Difference between pages)
Jump to: navigation, search
 
 
Line 2: Line 2:
 
<table align='right' border='1'>
 
<table align='right' border='1'>
 
<caption>Kompatibilität</caption>
 
<caption>Kompatibilität</caption>
<tr><th colspan='3'>ABS(f)</th></tr>
+
<tr><th colspan='3'>AVG(f)</th></tr>
 
<tr><td align='center'>'''DBMS'''</td><td align='center'>'''OK'''</td><td align='center'>'''Alternative'''</td></tr>
 
<tr><td align='center'>'''DBMS'''</td><td align='center'>'''OK'''</td><td align='center'>'''Alternative'''</td></tr>
 
<tr><td align='left'>Ingres</td><td>Ja</td><td></td></tr>
 
<tr><td align='left'>Ingres</td><td>Ja</td><td></td></tr>
Line 11: Line 11:
 
</table>
 
</table>
  
<h1>ABS</h1>
+
<h1>AVG</h1>
<p>ABS liefert den Absolutwert. Die Ausgabe ist positiv, auch wenn der Eingabewert negativ ist:</p>
+
<p>AVG ermitteln den Mittelwert bzw. Durchschnitt (arithmetisches Mittel) über die Werte einer Spalte bzw. die Werte einer Spalte über eine Gruppe von Zeilen.</p>
<pre style='width:40ex'>ABS(x) = x if x>=0
+
<p>AVG ist eine Aggregatfunktion und wird gewöhnlich mit der Klausel GROUP BY verwendet.</p>
ABS(x) = -x if x<0</pre>
+
<p>Der Mittelwert der Werte 2, 5, 5 beträgt (2+5+5)/3 = 12/3 = 4. Die Summe der Einzelwerte wird durch 3 geteilt, da es 3 Einzelwerte im Beispiel gibt.</p>
 +
<p>NULL-Werte werden nicht mitgezählt.</p>
 +
<pre style='width:60ex'>
 +
  SELECT region, AVG(population)
 +
  FROM bbc
 +
  GROUP BY region
 +
</pre>
  
 
<div class='qu'>
 
<div class='qu'>
ABS kann bei der Suche nach "ungefähren" Werten nützlich sein. Das Beispiel liefert jedes Land, dessen Fläche ungefähr 70.000 beträgt.
+
Mit der Klausel <code>GROUP BY region</code> wird für jede Region nur ein einziges Ergebnis berechnet.  
 
+
Die AVG-Funktion ermittelt die durchschnittliche Einwohnerzahl (eines Landes) für jede Region.  
Der Wert 70.000 ist der Zielwert, 500 ist der "Toleranzwert". Der Test ABS(area-70000)<500 liefert alle Flächen zwischen 70.000-500 und 70.000+500, d.h. 69.500 < area < 70.500.
+
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
SELECT name, area FROM bbc
+
SELECT region, AVG(population)
  WHERE ABS(area-70000)<500
+
  FROM bbc
 +
  GROUP BY region
 
</source>
 
</source>
 
</div>
 
</div>
Line 28: Line 34:
 
<p>Siehe auch</p>
 
<p>Siehe auch</p>
 
<ul>
 
<ul>
   <li>[[CASE/de | CASE-Anweisung]]</li>
+
   <li>[[MAX/de | Funktion MAX]]</li>
 +
  <li>[[COUNT/de | Funktion COUNT]]</li>
 +
  <li>[[MIN/de | Funktion MIN]]</li>
 
</ul>
 
</ul>
  
 
{{Languages}}
 
{{Languages}}

Latest revision as of 18:08, 21 October 2012

Kompatibilität
AVG(f)
DBMSOKAlternative
IngresJa
MySQLJa
OracleJa
PostgreSQLJa
SQL ServerJa

AVG

AVG ermitteln den Mittelwert bzw. Durchschnitt (arithmetisches Mittel) über die Werte einer Spalte bzw. die Werte einer Spalte über eine Gruppe von Zeilen.

AVG ist eine Aggregatfunktion und wird gewöhnlich mit der Klausel GROUP BY verwendet.

Der Mittelwert der Werte 2, 5, 5 beträgt (2+5+5)/3 = 12/3 = 4. Die Summe der Einzelwerte wird durch 3 geteilt, da es 3 Einzelwerte im Beispiel gibt.

NULL-Werte werden nicht mitgezählt.

   SELECT region, AVG(population)
   FROM bbc
   GROUP BY region 

Mit der Klausel GROUP BY region wird für jede Region nur ein einziges Ergebnis berechnet. Die AVG-Funktion ermittelt die durchschnittliche Einwohnerzahl (eines Landes) für jede Region.

SELECT region, AVG(population)
  FROM bbc
 GROUP BY region

Siehe auch

Sprache: English  • Deutsch
Personal tools
Namespaces

Variants
Actions
Reference
Toolbox
Google AdSense