Maison  >  Article  >  base de données  >  Analyse d'exemple d'utilisation de fonction MYSQL

Analyse d'exemple d'utilisation de fonction MYSQL

WBOY
WBOYavant
2023-05-31 22:07:041029parcourir

Fonction MYSQL

1 : Fonction d'agrégation

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

1:ABS(x) renvoie la valeur absolue de x

2:CEIL( x) renvoie la plus petite valeur supérieure ou égale à x Entier (arrondi à l'inférieur)

3:FLOOR(x) Renvoie le plus grand entier inférieur ou égal à x (arrondi à l'inférieur)
4:GREATEST(expr1 ,expr2...) Renvoie la valeur maximale de la liste

5:LEAST(expr1,expr2....) renvoie la valeur minimale de la liste
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..)

6:length() renvoie le nombre d'octets L'encodage utf-8 dans. mysql fait trois octets pour un caractère chinois
7 :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.

8:mid(s,n,len) de la chaîne s Intercepter une sous-chaîne de longueur len à la position n est la même chose que la sous-chaîne(s,n,len)

9:position (s1,in,s) Obtenez la position de départ de s1 à partir de la chaîne s
10:replcae (s,s1,s2) Remplacez la chaîne s2 par la chaîne s1 dans la chaîne s

11:reverse(s) Inverse l'ordre de la chaîne s
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

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
9:date_format(d,f) affiche la date d selon les exigences de l'expression f

4 : Fonction de flux de contrôle#🎜🎜 #


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

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

5.1 La fonction de numéro de série

peut réaliser un regroupement Trier et ajouter le numéro de série



1 : row_number()
2 :rank()
3 : dense_rank()

#🎜 🎜#

Écriture : sélectionnez l'identifiant,...,dense_rank() over(partition par ordre de nom par description de salaire) comme rn de l'employé ;

Remarque : Aucune partition par moyen global tri

Analyse dexemple dutilisation de fonction MYSQL

5.2 Fonction de distribution

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

Mé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 ;

#🎜 🎜#

Analyse dexemple dutilisation de fonction MYSQL

5.3 Fonctions avant et après
1 : lag(expr,n)

2 : lead(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))# 🎜🎜#

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)Analyse dexemple dutilisation de fonction MYSQL

Utilisation : Renvoie la première (first_value(expr )) ou last (last_value(expr)) La valeur de exprAnalyse dexemple dutilisation de fonction MYSQLScénario d'application : Dès à présent, interrogez le salaire du premier et du dernier employé dans l'ordre par date

#🎜 🎜#
5.5 Autres fonctions


1 : nth_value(expr,n)
2 : ntile(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

Analyse dexemple dutilisation de fonction MYSQL

5.6 Fonction d'agrégation de fenêtrage

1 : sum()

2: avg()
3: min()

4: max()

Analyse dexemple dutilisation de fonction MYSQL#🎜 🎜#

Écriture : sélectionner l'identifiant ,...,somme(salaire) sur(partition par nom ordre par embauché desc) comme rn de l'employé;

Analyse dexemple dutilisation de fonction MYSQL

chaque ligne de rn La donnée est la somme du salaire du ligne actuelle et chaque ligne précédente
S'il n'y a pas d'ordre par instruction de tri, toutes les données du groupe seront additionnées par défaut


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