Maison  >  Article  >  base de données  >  Requête de données MySQL : requête utilisant des fonctions d'ensemble/agrégation

Requête de données MySQL : requête utilisant des fonctions d'ensemble/agrégation

coldplay.xixi
coldplay.xixiavant
2021-03-12 09:23:422897parcourir

Requête de données MySQL : requête utilisant des fonctions d'ensemble/agrégation

Les fonctions d'agrégation MySQL sont les suivantes :

函数 作用
avg() 返回某列的平均值
count() 返回某列的行数
max() 返回某列的最大值
min() 返回某列的最小值
sum() 返回某列值的和

(1) fonction count()
(2) fonction sum()
(3 )avg () fonction
(4)max() fonction
(5)min() fonction


(Recommandation d'apprentissage gratuite : Tutoriel vidéo mysql)

(1)fonction count()
  • statistiques de la fonction count() des lignes d'enregistrement contenues dans le table Le nombre total, ou le nombre de lignes de données contenues dans la colonne renvoyée en fonction des résultats de la requête, peut être utilisé de deux manières :
    ①count(*) calcule le nombre total de lignes dans la table, qu'un La colonne a une valeur ou une valeur nulle.
    ②count (nom du champ) calcule le nombre total de lignes sous la colonne spécifiée. Les lignes avec des valeurs nulles seront ignorées lors du calcul.

[Exemple 1] Interrogez le nombre total de lignes dans la table clients. L'instruction SQL est la suivante :

mysql> select count(*) as cust_num    -> from customers;+----------+| cust_num |+----------+|        4 |+----------+1 row in set (0.06 sec)

À partir des résultats de la requête, count(*) renvoie le total. nombre de lignes enregistrées dans la table clients, quelle que soit sa valeur. Le total renvoyé est nommé cus_num.

[Exemple 2] Interrogez le nombre total de clients ayant des adresses e-mail dans la table clients. L'instruction SQL est la suivante :

mysql> select count(c_email) as email_num    -> from customers;+-----------+| email_num |+-----------+|         3 |+-----------+1 row in set (0.00 sec)

Les différents résultats des deux exemples ci-dessus indiquent que les deux Les méthodes traitent null lors du calcul du nombre total. La méthode de valeur est différente, c'est-à-dire que les lignes avec des valeurs vides dans la colonne spécifiée sont ignorées par la fonction count(), mais si la colonne n'est pas spécifiée et que * est utilisé dans le fonction count(), tous les enregistrements ne seront pas ignorés.

[Exemple 3] Dans le tableau orderitems, utilisez la fonction count() avec le mot-clé group by pour calculer le nombre total d'enregistrements dans différents groupes. Fonction

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()
  • sum est une fonction somme qui renvoie la somme des valeurs de colonne spécifiées.

[Exemple] Recherchez la quantité totale de fruits achetés pour la commande 30005 dans la table orderitems. L'instruction SQL est la suivante :

mysql> select sum(quantity) as items_total    -> from orderitems    -> where o_num = 30005;+-------------+| items_total |+-------------+|          30 |+-------------+1 row in set (0.05 sec)

sum() peut être utilisée avec group. par. Calculez la somme de chaque groupe.

[Exemple] Dans la table orderitems, utilisez la fonction sum() pour compter la quantité totale de fruits commandés dans différents numéros de commande. L'instruction SQL est la suivante :

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)

Quand la somme. la fonction calcule, la valeur est ignorée.

(3)fonction avg()
  • la fonction avg() calcule la moyenne des données de la colonne spécifiée en calculant le nombre de lignes renvoyées et la somme des données dans chaque colonne . Lorsque la fonction
  • avg() est utilisée, son paramètre est le nom de la colonne à calculer. Si vous souhaitez obtenir plusieurs moyennes de plusieurs colonnes, vous devez utiliser la fonction avg() sur chaque colonne.

[Exemple 1] Dans la table des fruits, interrogez le prix moyen des fruits du fournisseur avec s_id=103 L'instruction SQL est la suivante :

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)

[Exemple 2] Dans Dans la table des fruits, interrogez le prix moyen des fruits de chaque fournisseur, l'instruction SQL est la suivante :

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 password regroupe les enregistrements en fonction du champ s_id, puis calcule la valeur moyenne de chaque groupe. regroupement La méthode de moyenne est très utile. Par exemple, trouvez les scores moyens des étudiants dans différentes classes, trouvez le salaire moyen des travailleurs de différents départements, trouvez la température annuelle moyenne à divers endroits, etc. La fonction

(4)max()
  • max() renvoie la valeur maximale dans la colonne spécifiée.
  • En plus de trouver la plus grande valeur de colonne ou la valeur de date, la fonction max() peut également renvoyer la valeur maximale dans n'importe quelle colonne, y compris la valeur maximale du type de caractère.

[Exemple 1] Trouvez la valeur du fruit le plus cher du marché dans la table des fruits. L'instruction SQL est la suivante :

mysql> select max(f_price) as max_price from fruits;+-----------+| max_price |+-----------+|     15.70 |+-----------+1 row in set (0.05 sec)

[Exemple 2] Trouvez la valeur fournie par. différents fournisseurs dans la table des fruits La valeur du fruit avec le prix le plus élevé, l'instruction SQL est la suivante :

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)

[Exemple 3] Trouvez la valeur maximale de f_name dans la table des fruits, l'instruction SQL est la suivante : Fonction

mysql> select max(f_name) from fruits;+-------------+| max(f_name) |+-------------+| xxxx        |+-------------+1 row in set (0.00 sec)
(5)min()

- min() renvoie la valeur minimale dans la colonne de requête.

[Exemple 1] Trouvez la valeur du fruit au prix le plus bas du marché dans la table des fruits. L'instruction SQL est la suivante :

mysql> select min(f_price) as min_price    -> from fruits;+-----------+| min_price |+-----------+|      2.20 |+-----------+1 row in set (0.00 sec)

[Exemple 2] Trouvez le prix le plus bas fourni par différents fournisseurs. dans la table des fruits Pour les jus de fruits, l'instruction SQL est la suivante :

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)

Recommandations d'apprentissage gratuites associées : base de données mysql (vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer