MySQL-Aggregatfunktionen sind wie folgt:
function | function |
---|---|
avg() | gibt den Durchschnitt einer Spalte zurück |
count() | Anzahl der Zeilen zurückgeben in einer Spalte |
max() | Gibt den Maximalwert einer bestimmten Spalte zurück |
min() | Gibt den Minimalwert einer bestimmten Spalte zurück |
sum() | Gibt die Summe von zurück die Werte einer bestimmten Spalte |
(1)count()-Funktion
(2)sum()-Funktion
(3)avg()-Funktion
(4)max()-Funktion
(5)min( ) Funktion
(Kostenlose Lernempfehlung: MySQL-Video-Tutorial)
[Beispiel 1] Um die Gesamtzahl der Zeilen in der Kundentabelle abzufragen, lautet die SQL-Anweisung wie folgt:
mysql> select count(*) as cust_num -> from customers;+----------+| cust_num |+----------+| 4 |+----------+1 row in set (0.06 sec)
Aus den Abfrageergebnissen gibt count(*) die Gesamtzahl der in der Kundentabelle aufgezeichneten Zeilen zurück. egal welchen Wert es hat. Die zurückgegebene Gesamtsumme trägt den Namen cust_num.
[Beispiel 2] Um die Gesamtzahl der Kunden mit E-Mail-Adressen in der Kundentabelle abzufragen, lautet die SQL-Anweisung wie folgt:
mysql> select count(c_email) as email_num -> from customers;+-----------+| email_num |+-----------+| 3 |+-----------+1 row in set (0.00 sec)
Die unterschiedlichen Ergebnisse der beiden obigen Beispiele zeigen, dass die beiden Methoden Nullwerte unterschiedlich behandeln Wenn Sie die Gesamtsumme berechnen, geben Sie die Spalte an. Zeilen mit leeren Werten werden von der Funktion count() ignoriert. Wenn Sie jedoch keine Spalte angeben und * in der Funktion count() verwenden, werden nicht alle Datensätze ignoriert.
【Beispiel 3】Verwenden Sie in der Tabelle „orderitems“ die Funktion count() zusammen mit dem Schlüsselwort „group by“, um die Gesamtzahl der Datensätze in verschiedenen Gruppen zu berechnen.
mysql> select o_num,count(f_id) -> from orderitems -> group by o_num;+-------+-------------+| o_num | count(f_id) |+-------+-------------+| 30001 | 4 || 30002 | 1 || 30003 | 1 || 30004 | 1 || 30005 | 4 |+-------+-------------+5 rows in set (0.00 sec)
[Beispiel] Fragen Sie die Gesamtmenge der für Bestellung 30005 gekauften Früchte in der Tabelle „orderitems“ ab. Die SQL-Anweisung lautet wie folgt:
mysql> select sum(quantity) as items_total -> from orderitems -> where o_num = 30005;+-------------+| items_total |+-------------+| 30 |+-------------+1 row in set (0.05 sec)
sum() kann mit „group by“ verwendet werden, um die Summe jeder Gruppe zu berechnen.
[Beispiel] Verwenden Sie in der orderitems-Tabelle die Funktion sum(), um die Gesamtmenge der in verschiedenen Bestellnummern bestellten Früchte zu zählen. Die SQL-Anweisung lautet wie folgt:
mysql> select o_num,sum(quantity) as items_total -> from orderitems -> group by o_num;+-------+-------------+| o_num | items_total |+-------+-------------+| 30001 | 33 || 30002 | 2 || 30003 | 100 || 30004 | 50 || 30005 | 30 |+-------+-------------+5 rows in set (0.00 sec)
Bei der Berechnung ignoriert die Summenfunktion Zeilen mit Nullwerten .
[Beispiel 1] Fragen Sie in der Obsttabelle den durchschnittlichen Obstpreis des Lieferanten mit s_id=103 ab. Die SQL-Anweisung lautet wie folgt:
mysql> select avg(f_price) as avg_price -> from fruits -> where s_id = 103;+-----------+| avg_price |+-----------+| 5.700000 |+-----------+1 row in set (0.05 sec)
[Beispiel 2] Fragen Sie in der Obsttabelle den jeweiligen Obstpreis ab Lieferant Der Durchschnittswert der SQL-Anweisung lautet wie folgt:
mysql> select s_id,avg(f_price) as avg_price -> from fruits -> group by s_id;+------+-----------+| s_id | avg_price |+------+-----------+| 104 | 7.000000 || 101 | 6.200000 || 103 | 5.700000 || 107 | 3.600000 || 102 | 8.933333 || 105 | 7.466667 || 106 | 15.700000 |+------+-----------+7 rows in set (0.00 sec)
group by keyword gruppiert die Datensätze gemäß dem s_id-Feld und berechnet dann den Durchschnittswert jeder Gruppe. Diese Gruppendurchschnittsmethode ist sehr nützlich. Ermitteln Sie beispielsweise die durchschnittlichen Noten von Schülern in verschiedenen Klassen, das durchschnittliche Gehalt von Arbeitern in verschiedenen Abteilungen, die durchschnittliche Jahrestemperatur an verschiedenen Orten usw.
【Beispiel 1】Finden Sie in der Obsttabelle den höchstpreisigen Obstwert auf dem Markt. Die SQL-Anweisung lautet wie folgt:
mysql> select max(f_price) as max_price from fruits;+-----------+| max_price |+-----------+| 15.70 |+-----------+1 row in set (0.05 sec)
【Beispiel 2】Finden Sie in der Obsttabelle den höchstpreisigen Obstwert auf dem Markt, der von verschiedenen Lieferanten bereitgestellt wird. Die SQL-Anweisung lautet wie folgt:
mysql> select s_id,max(f_price) as max_price -> from fruits -> group by s_id;+------+-----------+| s_id | max_price |+------+-----------+| 104 | 7.60 || 101 | 10.20 || 103 | 9.20 || 107 | 3.60 || 102 | 11.20 || 105 | 11.60 || 106 | 15.70 |+------+-----------+7 rows in set (0.00 sec)
[Beispiel 3] Finden Sie den Maximalwert von f_name in der Fruchttabelle. Die SQL-Anweisung lautet wie folgt:
mysql> select max(f_name) from fruits;+-------------+| max(f_name) |+-------------+| xxxx |+-------------+1 row in set (0.00 sec)
- min() gibt den zurück Mindestwert in der Abfragespalte.
[Beispiel 1] Suchen Sie in der Obsttabelle nach dem günstigsten Fruchtwert auf dem Markt. Die SQL-Anweisung lautet wie folgt:
mysql> select min(f_price) as min_price -> from fruits;+-----------+| min_price |+-----------+| 2.20 |+-----------+1 row in set (0.00 sec)
[Beispiel 2] Finden Sie in der Obsttabelle den günstigsten Fruchtsaft, der von verschiedenen Lieferanten angeboten wird . Die SQL-Anweisung lautet wie folgt:
mysql> select s_id,min(f_price) as min_price -> from fruits -> group by s_id;+------+-------------+| s_id | min_price |+------+-------------+| 104 | 6.40 || 101 | 3.20 || 103 | 2.20 || 107 | 3.60 || 102 | 5.30 || 105 | 2.60 || 106 | 15.70 |+------+-------------+7 rows in set (0.00 sec)
Verwandte kostenlose Lernempfehlungen: MySQL-Datenbank(Video)
Das obige ist der detaillierte Inhalt vonMySQL-Datenabfrage: Abfrage mithilfe von Set-/Aggregationsfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!