Heim >Datenbank >MySQL-Tutorial >MySQL-Datenabfrage: Abfrage mithilfe von Set-/Aggregationsfunktionen

MySQL-Datenabfrage: Abfrage mithilfe von Set-/Aggregationsfunktionen

coldplay.xixi
coldplay.xixinach vorne
2021-03-12 09:23:422941Durchsuche

MySQL-Datenabfrage: Abfrage mithilfe von Set-/Aggregationsfunktionen

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)

(1)count()-Funktion
  • count()-Funktion zählt die Gesamtzahl der in der Datentabelle enthaltenen Datensatzzeilen oder gibt die Anzahl der in der Spalte enthaltenen Datenzeilen basierend auf den Abfrageergebnissen zurück. Es gibt zwei Verwendungsmethoden:
    ①count(*) berechnet die Gesamtzahl der Zeilen in der Tabelle, unabhängig davon, ob eine Spalte einen Wert oder einen Wert hat Nullwert.
    ②count (Feldname) berechnet die Gesamtzahl der Zeilen unter der angegebenen Spalte. Zeilen mit Nullwerten werden bei der Berechnung ignoriert.

[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)
(2)sum()-Funktion
  • sum ist eine Summenfunktion, die die Summe der angegebenen Spaltenwerte zurückgibt.

[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 .

(3)avg()-Funktion
  • avg()-Funktion berechnet den Durchschnitt der angegebenen Spaltendaten, indem sie die Anzahl der zurückgegebenen Zeilen und die Summe der Daten in jeder Spalte berechnet.
  • Wenn die Funktion avg() verwendet wird, ist ihr Parameter der Name der zu berechnenden Spalte. Wenn Sie mehrere Durchschnittswerte mehrerer Spalten erhalten möchten, müssen Sie die Funktion avg() für jede Spalte verwenden.

[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.

(4)max()-Funktion
  • max() gibt den Maximalwert in der angegebenen Spalte zurück. Zusätzlich zum Ermitteln des größten Spaltenwerts oder Datumswerts kann die Funktion
  • max() auch den Maximalwert in jeder Spalte zurückgeben, einschließlich der Rückgabe des Maximalwerts des Zeichentyps.

【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)
(5)min()-Funktion

- 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen