Maison >base de données >tutoriel mysql >Analyse d'exemple d'utilisation de fonction MYSQL
Les fonctions d'agrégation sont principalement composées de : count,sum,min,max,avg,group_count()
#🎜 🎜# Concentrons-nous sur la fonction group_count(). Tout d'abord, regroupez en fonction de la colonne spécifiée par group by, et séparez-la par des délimiteurs.Connectez ensuite les valeurs du même groupe et renvoyez un résultat de chaîne #. 🎜🎜#Format : group_count([distinct]nom du champ[ordre par champ de tri asc/desc] [séparateur 'séparateur'])
Description :#🎜 🎜# 1 : Utilisez distinct pour exclure les valeurs en double
2 : Si vous devez trier les valeurs des résultats, vous pouvez utiliser la clause order by
3 : le séparateur est une chaîne. valeur, la valeur par défaut est la virgule.# 🎜🎜#2 : Fonction mathématique
4:GREATEST(expr1 ,expr2...) Renvoie la valeur maximale de la liste7 :ltrim(s) supprime les espaces au début de la chaîne s et supprime les espaces à gauche rtrim() supprime les espaces à droite. espaces des deux côtés.5:LEAST(expr1,expr2....) renvoie la valeur minimale de la liste
6:length() renvoie le nombre d'octets L'encodage utf-8 dans. mysql fait trois octets pour un caractère chinois
6:MAX(x) renvoie la valeur maximale du champ x
7:MIN(x) renvoie le champ Valeur minimale de x
8:MOD(x,y) Renvoie le reste après avoir divisé x par y
9:PI() renvoie pi ( 3.141593)
10:POW(x,y) Renvoie x élevé à la puissance y
11:RAND() Renvoie un nombre aléatoire de 0 à 1
12:ROUND(x) Renvoie l'entier le plus proche de x (après arrondi)
13:ROUND( x,y) Renvoie le nombre de décimales spécifié (après arrondi)
14: TRUNCATE(x,y) Renvoie la valeur x retenue pour y places après la virgule décimale, (la plus grande différence avec ROUND est qu'il ne sera pas arrondi) :char_length(s) Renvoie le nombre de caractères dans la chaîne s
2:character_length Renvoie le nombre de caractères dans la chaîne s
3:concat(s1,s2,s3) Les chaînes s1, s2 et autres chaînes sont combiné en une seule chaîne
4:concat_ws(x,s1,s2. .) Identique à la fonction concat(s1,s2,s3), mais x est ajouté entre chaque chaîne, x peut être un séparateur
5 :field(s,s1,s2) renvoie la première chaîne La position de s dans la liste de chaînes (s1, s2..)
10:replcae (s,s1,s2) Remplacez la chaîne s2 par la chaîne s1 dans la chaîne s9:date_format(d,f) affiche la date d selon les exigences de l'expression f11:reverse(s) Inverse l'ordre de la chaîne s
7:datediff(d1,d2) Calcule le nombre de jours entre les dates d1>d2 par exemple:datediff( '2022-01-01','2022-02-01')#🎜 🎜#8:currtime() renvoie l'heure actuelle
12:right(s,n) Renvoie les n derniers caractères de la chaîne s (n caractères pris à partir de la droite)
13:strcmp(s1,s2) Compare les chaînes s1 et s2 , renvoie 0 si s1 et s2 sont égaux, renvoie 1 si s1>s2 Si s1 est inférieur à s2, renvoie -1
14:substr(s,start,length) Intercepte la sous-chaîne de longueur à partir de la position de départ de string s
15:ucase(s) upper(s) Convertit la chaîne en majuscule
16:lcase(s) lower(s) Convertit la chaîne en minuscule
#🎜 🎜#3:Fonction Date
1:unix_timestamp() renvoie le 01/01/1970 00:00:00 à la valeur actuelle en millisecondes
2:unix_timestamp(date_string) Convertit la date spécifiée en un horodatage de valeur en milliseconde
3:from_unixtime (bigint unixtime, format de chaîne) Convertit l'horodatage de valeur en milliseconde au format de date spécifié
4:curdate() Renvoie la date actuelle
5:current_date() Renvoie la date actuelle
6:current_timestamp() Renvoie la date et l'heure actuelles
4 : Fonction de flux de contrôle#🎜🎜 #La nouvelle fonction de fenêtre ajoutée dans mysql8.0 Elle est appelée fonction de fenêtrage. Les fonctions de fenêtre de non-agrégation sont relatives. pour agréger les fonctions. Les fonctions d'agrégation renvoient une valeur unique (c'est-à-dire le regroupement) après le calcul d'un ensemble de données. Les fonctions de non-agrégation ne traiteront qu'une seule ligne de données à la fois. Fonctions d'agrégation de fenêtres en lignes lors du calcul du résultat d'un certain champ. sur un enregistrement, les données dans la plage de la fenêtre peuvent être saisies dans la fonction d'agrégation sans changer le nombre de lignes
1:if(expr,v1,v2) Si l'expression expr est vraie, renvoie le résultat v1 , sinon renvoie le résultat v2
2:ifnull(v1,v2) Si la valeur de v1 est Si nulle, renvoie v1, sinon renvoie v2
3:isnull(expression) Détermine si l'expression est nulle # 🎜🎜#4:nullif(expr1,expr2) Comparez deux chaînes et retournez null si les chaînes expr1 et expr2 sont égales Sinon renvoie expr1
5:expression de cas quand condition1 puis résultat1 quand condition2 puis résultat2 sinon la fin du résultat signifie le début de la fonction case, end signifie la fin de la fonction, si condition1 est vraie, renvoie result1, si condition2 est vraie, renvoie result2, quand tous ne sont pas vrais, alors renvoie le résultat, et quand un est établi, ce qui suit ne sera pas être exécuté.
5 : Fonction de fenêtre
peut réaliser un regroupement Trier et ajouter le numéro de série#🎜 🎜#
1 : row_number()
2 :rank()
3 : dense_rank()
1 : percent_rank()
用途:每行按照公式(rank-1)/(row-1)进行计算.其中rank为rank()函数产生的序号,row为当前窗口的记录总行数
2: cume_dist()
Objectif : Le nombre de lignes dans le groupe qui est inférieur à ou égal à la valeur de classement actuelle /Nombre total de lignes dans le groupe
Scénario d'application : Interroger la proportion qui est inférieure ou égale au salaire actuel
#🎜 🎜#5.3 Fonctions avant et aprèsMéthode d'écriture : sélectionnez dname,ename,salary,cume_dist() sur (ordre par salaire) comme rn1,
cume_dist() sur (partition par dname ordre par salaire) comme rn2 de l'employeur ;
1 : lag(expr,n)Objectif : Renvoie la ligne actuelle La valeur de expr dans les n premières lignes (lag(exor,n)) ou les n lignes suivantes (lead(expr,n))# 🎜🎜#2 : lead(expr,n )
Scénario d'application : interroger les scores du premier étudiant et les scores des étudiants actuels La différence (il peut y avoir une certaine valeur de champ de la ligne de données précédente dans la ligne actuelle) 5.4 Fonctions de tête et de queue
1 : first_value(expr)2 : last_value(expr)
Utilisation : Renvoie la première (first_value(expr )) ou last (last_value(expr)) La valeur de exprScénario d'application : Dès à présent, interrogez le salaire du premier et du dernier employé dans l'ordre par date
#🎜 🎜#5.5 Autres fonctions2 : ntile(n)#🎜🎜 #1 : nth_value(expr,n)
# 🎜🎜#Objectif : Renvoyez la valeur de la nième expr dans la fenêtre expr peut être une expression ou un nom de colonne
Scénario d'application : A partir du salaire actuel, afficher le salaire de chaque employé Le deuxième ou le troisième salaire dans
1 : sum()5.6 Fonction d'agrégation de fenêtrage
2: avg()
3: min()
#🎜 🎜#
Écriture : sélectionner l'identifiant ,...,somme(salaire) sur(partition par nom ordre par embauché desc) comme rn de l'employé;chaque ligne de rn La donnée est la somme du salaire du ligne actuelle et chaque ligne précédenteCe 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!