Table des matières
Ce que font les fonctions analytiques (et quand vous les utiliseriez)
Comment les fonctions agrégées fonctionnent différemment
Différences clés en un coup d'œil
Maison base de données Oracle Quelles sont les fonctions analytiques Oracle et en quoi diffèrent-elles des fonctions agrégées?

Quelles sont les fonctions analytiques Oracle et en quoi diffèrent-elles des fonctions agrégées?

Oct 06, 2025 am 12:56 AM
Fonction d'agrégation

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

La différence entre la somme et le compte dans Oracle La différence entre la somme et le compte dans Oracle May 02, 2024 pm 11:09 PM

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.

Comment utiliser la fonction somme dans SQL Comment utiliser la fonction somme dans SQL May 02, 2024 am 12:01 AM

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 count1 et count* dans Oracle La différence entre count1 et count* dans Oracle Apr 30, 2024 am 06:12 AM

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.

Comment utiliser group by et order by ensemble dans SQL Comment utiliser group by et order by ensemble dans SQL May 02, 2024 am 03:09 AM

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 ;

Qu'est-ce qu'une colonne non agrégée dans SQL Qu'est-ce qu'une colonne non agrégée dans SQL May 01, 2024 pm 10:51 PM

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.

Que signifie sc dans SQL ? Que signifie sc dans SQL ? May 02, 2024 am 03:33 AM

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

Comment la somme en SQL est calculée Comment la somme en SQL est calculée May 09, 2024 am 09:27 AM

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 ;

Quelles sont les fonctions d'agrégation dans SQL Quelles sont les fonctions d'agrégation dans SQL May 02, 2024 am 01:12 AM

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)

See all articles