


Quelles sont les fonctions analytiques Oracle et en quoi diffèrent-elles des fonctions agrégées?
Les fonctions d'analyse Oracle permettent des calculs des lignes connexes sans fusionner les ensembles de résultats et conviennent aux scénarios où la structure d'origine doit être conservée. Ils fonctionnent en définissant des fenêtres (telles que le tri, le regroupement ou le décalage). Les utilisations courantes incluent le calcul des sommes cumulatives, des classements (tels que Rank (), dense_rank ()), en prenant les n termes n pour chaque groupe, en comparant la ligne actuelle avec les lignes précédentes et suivantes, etc.; Par exemple, l'utilisation d'Avg () sur (partition by) peut ajouter la valeur moyenne pour chaque groupe sans diminuer le nombre de lignes. En revanche, les fonctions agrégées (telles que SUM, AVG) fusionnent plusieurs lignes en valeurs uniques, adaptées aux scénarios où les informations sont nécessaires uniquement. Les principales différences sont les suivantes: 1. Nombre de lignes de sortie: une ligne est sortie pour chaque groupe de fonctions agrégées, et une ligne est sortie pour chaque ligne d'entrée de fonction d'analyse; 2. Sur la clause: la fonction d'analyse doit être utilisée, tandis que la fonction agrégée n'utilise pas par défaut; 3. Fonction: La fonction agrégée est utilisée pour résumer les données, et la fonction d'analyse prend en charge le classement, la comparaison et le calcul de contexte. Par conséquent, lorsque vous conservez des données détaillées et des calculs de groupe d'attachement, vous devez sélectionner une fonction d'analyse et seule une fonction agrégée est nécessaire pour résumer.
Les fonctions analytiques Oracle sont des outils qui vous permettent d'effectuer des calculs à travers un ensemble de lignes de table liées à la ligne actuelle - sans effondrer les résultats définis dans une seule ligne comme les fonctions agrégées. Ils sont particulièrement utiles lorsque vous souhaitez classer les données, calculer les moyennes mobiles ou comparer les valeurs entre différentes lignes tout en gardant la structure d'origine intacte.
Ce que font les fonctions analytiques (et quand vous les utiliseriez)
Les fonctions analytiques fonctionnent en définissant une "fenêtre" ou un ensemble de lignes autour de la ligne actuelle. Cette fenêtre peut être basée sur la commande, le regroupement (en utilisant PARTITION BY
), ou même les décalages physiques comme les lignes précédentes ou suivantes.
Les cas d'utilisation courants comprennent:
- Calculer les totaux de course ou les sommes cumulatives
- Rangs de classement dans des groupes utilisant
RANK()
,DENSE_RANK()
, etc. - Obtenir les résultats Top-N par groupe
- Comparaison des valeurs de ligne actuelles avec les valeurs antérieures ou suivantes
Par exemple, si vous souhaitez afficher le salaire de chaque employé avec le salaire moyen de son département, vous pouvez utiliser:
SÉLECTIONNER emp_id, Dept_id, SALAIRE, Avg (salaire) sur (partition par Dept_id) comme avg_salary Des employés;
Cela renvoie toutes les lignes de la table, mais ajoute une nouvelle colonne montrant la moyenne pour chaque département - quelque chose que vous ne pouviez pas faire proprement avec des fonctions agrégées.
Comment les fonctions agrégées fonctionnent différemment
Les fonctions agrégées comme SUM()
, AVG()
et COUNT()
effondrent plusieurs lignes en une seule valeur. C'est génial pour les rapports de résumé où vous ne vous souciez plus des lignes individuelles.
Si vous essayiez de faire le même calcul de salaire moyen à l'aide d'agrégats, votre requête ressemblerait à ceci:
SÉLECTIONNER Dept_id, Avg (salaire) comme avg_salary Des employés Groupe par Dept_id;
Mais cela ne vous donne qu'une ligne par département - pas la liste complète des employés avec les informations supplémentaires. Si vous avez besoin des détails individuels et des valeurs agrégées, les fonctions analytiques sont la voie à suivre.
De plus, les fonctions agrégées utilisées comme fonctions analytiques (comme dans le premier exemple) se comportent différemment en raison de la clause OVER()
, qui indique à Oracle de ne pas effondrer les lignes.
Différences clés en un coup d'œil
Voici comment ils s'empilent:
-
Sortie de ligne :
- Agrégat: une ligne de résultat par groupe
- Analytique: une ligne de résultat par ligne d'entrée
-
Utilisation de la clause
OVER()
:- Agrégat: non utilisé sauf si transformé en une fonction analytique
- Analytique: incluez toujours
OVER()
-
But :
- Agrégat: résumer les données
- Analytique: calculer les valeurs dans le contexte des lignes connexes
-
Classement et comparaison :
- Agrégat: ne peut pas classer ou comparer directement
- Analytique: prise en charge intégrée pour le classement (
RANK()
,ROW_NUMBER()
) et les fonctions de lag / plomb (LAG()
,LEAD()
)
Vous verrez souvent les fonctions analytiques utilisées dans les tableaux de bord, les rapports de performances ou partout où vous souhaitez afficher des données de niveau détaillées enrichies avec des informations au niveau groupées.
Donc, si vous essayez de comprendre quand utiliser chacun, pensez à ce que vous voulez dans la sortie: juste des résumés? Utilisez des agrégats. Besoin de conserver les lignes mais d'ajouter un contexte calculé? Allez avec l'analyse.
Fondamentalement, c'est tout.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SUM dans Oracle est utilisé pour calculer la somme des valeurs non nulles, tandis que COUNT compte le nombre de valeurs non nulles de tous les types de données, y compris les valeurs en double.

La fonction SUM() en SQL est utilisée pour calculer la somme des colonnes numériques. Il peut calculer des sommes en fonction de colonnes spécifiées, de filtres, d'alias, de regroupement et d'agrégation de plusieurs colonnes, mais ne gère que les valeurs numériques et ignore les valeurs NULL.

La différence entre COUNT(1) et COUNT(*) dans Oracle est la suivante : COUNT(1) ignore les valeurs nulles et ne compte que les lignes non vides ; COUNT(*) compte toutes les lignes, y compris les valeurs nulles, la fonction à choisir dépend ; on : s'il y a des valeurs nulles, en donnant la priorité aux performances ou à la cohérence.

Les données groupées peuvent être triées à l'aide de GROUP BY et ORDER BY : 1. GROUP BY regroupe les données 2. ORDER BY trie chaque groupe de données ;

Les colonnes non agrégées dans SQL sont des colonnes qui stockent des valeurs d'enregistrement uniques et ne sont pas traitées par les fonctions d'agrégation. Ces colonnes contiennent des valeurs uniques pour chaque enregistrement et sont utilisées pour identifier, catégoriser ou filtrer les données.

SC signifie SELECT COUNT en SQL, une fonction d'agrégation utilisée pour compter le nombre d'enregistrements, qu'une condition soit remplie ou non. Syntaxe SC : SELECT COUNT(*) AS record_count FROM table_name WHERE condition, où COUNT(*) compte le nombre de tous les enregistrements, table_name est le nom de la table et condition est une condition facultative (utilisée pour compter le nombre d'enregistrements qui répondent aux condition).

La fonction SQL SUM calcule la somme d'un ensemble de nombres en les additionnant. Le processus opérationnel comprend : 1. L'identification de la valeur d'entrée ; 2. La boucle de la valeur d'entrée et sa conversion en nombre ; 3. L'ajout de chaque nombre pour accumuler une somme ; 4. Le renvoi du résultat de la somme ;

Les fonctions d'agrégation en SQL sont utilisées pour calculer et renvoyer une valeur unique pour un ensemble de lignes. Les fonctions d'agrégation courantes incluent : Fonctions d'agrégation numérique : COUNT(), SUM(), AVG(), MIN(), MAX() Fonctions d'agrégation d'ensembles de lignes : GROUP_CONCAT(), FIRST(), LAST() Fonctions d'agrégation statistique : STDDEV ( ), fonctions d'agrégation facultatives VARIANCE() : COUNT(DISTINCT), TOP(N)
