4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.

Slides:



Advertisements
Présentations similaires
26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Advertisements

Les fonctions.
Regrouper les Données avec les Fonctions de Groupe
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
SQL Partie 3 : (LID : Langage d'interrogation de données)
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Initiation aux bases de données et à la programmation événementielle
Limiter et trier des données
SIO SLAM1: Exploitation d’un schéma de données
Access Les requêtes Table médias Table (*) Requêtes simples.
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
Sous-Interrogations.
Sélection de colonnes (la projection)
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Copyright  Oracle Corporation, Tous droits réservés. 11 Extraction Hiérarchique.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES SQL -2
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Les fonctions et les regroupements B.T.S. S.I.O – SI3 – 1.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Environnement du développement de BD ORACLE REPORTS 10g
Structured Query Language SQL DDL
Intégration du P7 dans l’épreuve E41
Langage de manipulation de données (LMD)
Oracle.
Structured Query Language
Collecte de données CAPI
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
Langage d’interrogation des Données LID
SQL LID – INTERROGATIN DES DONNEES
Manipulation D’Une Base De Données
Langage d’interrogation des Données LID
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
3 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions monoligne afin de personnaliser la sortie.
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
11 Copyright © 2004, Oracle. Tous droits réservés. Gérer les objets à l'aide de vues du dictionnaire de données.
Préface. Préface-3 Profil Avant de commencer Avant de commencer ce cours, vous devez savoir utiliser une interface graphique. Vous devez en outre être.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
Description et données des tables Exercices complémentaires.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
Langage d’interrogation des Données Les fonctions de groupes
SIO SI3 : Exploitation des données
Les Requêtes S.Q.L « Structured Query Language). SQL Historique.
© Robert Godin. Tous droits réservés.
SQL Structured Query Language
Langage SQL ENCG-Tanger Le Langage SQL (1) INTRODUCTION
Systèmes d’Information et Application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Opérateurs Ensemblistes
Transcription de la présentation:

4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe

Copyright © 2004, Oracle. Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : identifier les fonctions de groupe disponibles décrire l'utilisation des fonctions de groupe regrouper des données à l'aide de la clause GROUP BY inclure ou exclure des lignes regroupées à l'aide de la clause HAVING

Copyright © 2004, Oracle. Tous droits réservés. Que sont les fonctions de groupe ? Les fonctions de groupe opèrent sur des ensembles de lignes afin de renvoyer un seul résultat par groupe. EMPLOYEES Salaire maximum de la table EMPLOYEES …

Copyright © 2004, Oracle. Tous droits réservés. Types de fonction de groupe AVG COUNT MAX MIN STDDEV SUM VARIANCE Fonctions de groupe

Copyright © 2004, Oracle. Tous droits réservés. SELECT [column,] group_function(column),... FROM table [WHERE condition] [GROUP BY column] [ORDER BY column]; Fonctions de groupe : syntaxe

Copyright © 2004, Oracle. Tous droits réservés. SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%'; Utiliser les fonctions AVG et SUM Vous pouvez utiliser les fonctions AVG et SUM pour les données numériques.

Copyright © 2004, Oracle. Tous droits réservés. SELECT MIN(hire_date), MAX(hire_date) FROM employees; Utiliser les fonctions MIN et MAX Vous pouvez utiliser MIN et MAX pour les valeurs numériques, les valeurs de type caractère et les valeurs de type date.

Copyright © 2004, Oracle. Tous droits réservés. COUNT(*) renvoie le nombre de lignes d'une table : COUNT(expr) renvoie le nombre de lignes avec des valeurs non NULL pour expr : SELECT COUNT(commission_pct) FROM employees WHERE department_id = 80; SELECT COUNT(*) FROM employees WHERE department_id = 50; Utiliser la fonction COUNT 1 2

Copyright © 2004, Oracle. Tous droits réservés. SELECT COUNT(DISTINCT department_id) FROM employees; Utiliser le mot-clé DISTINCT COUNT(DISTINCT expr) renvoie le nombre de valeurs non NULL distinctes de expr. Pour afficher le nombre de départements distincts de la table EMPLOYEES :

Copyright © 2004, Oracle. Tous droits réservés. Les fonctions de groupe ignorent les valeurs NULL de la colonne : La fonction NVL force les fonctions de groupe à inclure les valeurs NULL : SELECT AVG(commission_pct) FROM employees; SELECT AVG(NVL(commission_pct, 0)) FROM employees; Fonctions de groupe et valeurs NULL 1 2

Copyright © 2004, Oracle. Tous droits réservés. Créer des groupes de données EMPLOYEES … Salaire moyen de la table EMPLOYEES pour chaque département

Copyright © 2004, Oracle. Tous droits réservés. Vous pouvez diviser les lignes d'une table en groupes plus petits à l'aide de la clause GROUP BY. Créer des groupes de données : syntaxe de la clause GROUP BY SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column];

Copyright © 2004, Oracle. Tous droits réservés. SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ; Utiliser la clause GROUP BY Toutes les colonnes de la liste SELECT qui ne sont pas incluses dans des fonctions de groupe doivent figurer dans la clause GROUP BY.

Copyright © 2004, Oracle. Tous droits réservés. Utiliser la clause GROUP BY La colonne GROUP BY ne doit pas nécessairement figurer dans la liste SELECT. SELECT AVG(salary) FROM employees GROUP BY department_id ;

Copyright © 2004, Oracle. Tous droits réservés. Regrouper en fonction de plusieurs colonnes EMPLOYEES Additionner les salaires de la table EMPLOYEES pour chaque poste, regroupés par département …

Copyright © 2004, Oracle. Tous droits réservés. SELECT department_id dept_id, job_id, SUM(salary) FROM employees GROUP BY department_id, job_id ; Utiliser la clause GROUP BY sur plusieurs colonnes

Copyright © 2004, Oracle. Tous droits réservés. Interrogations illégales avec des fonctions de groupe Toute colonne ou expression de la liste SELECT qui ne constitue pas une fonction d'agrégation doit figurer dans la clause GROUP BY : SELECT department_id, COUNT(last_name) FROM employees; SELECT department_id, COUNT(last_name) * ERROR at line 1: ORA-00937: not a single-group group function Colonne manquante dans la clause GROUP BY

Copyright © 2004, Oracle. Tous droits réservés. Interrogations illégales avec des fonctions de groupe Vous ne pouvez pas utiliser la clause WHERE pour restreindre des groupes. Utilisez la clause HAVING pour restreindre des groupes. Vous ne pouvez pas utiliser des fonctions de groupe dans la clause WHERE. SELECT department_id, AVG(salary) FROM employees WHERE AVG(salary) > 8000 GROUP BY department_id; WHERE AVG(salary) > 8000 * ERROR at line 3: ORA-00934: group function is not allowed here Impossible d'utiliser la clause WHERE pour restreindre des groupes

Copyright © 2004, Oracle. Tous droits réservés. Restreindre les résultats des groupes EMPLOYEES … Le salaire maximum par département lorsqu'il est supérieur à $

Copyright © 2004, Oracle. Tous droits réservés. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; Restreindre les résultats des groupes à l'aide de la clause HAVING Lorsque vous utilisez la clause HAVING, le serveur Oracle restreint les groupes de la façon suivante : 1.Les lignes sont regroupées. 2.La fonction de groupe est appliquée. 3.Les groupes qui correspondent à la clause HAVING s'affichent.

Copyright © 2004, Oracle. Tous droits réservés. SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ; Utiliser la clause HAVING

Copyright © 2004, Oracle. Tous droits réservés. SELECT job_id, SUM(salary) PAYROLL FROM employees WHERE job_id NOT LIKE '%REP%' GROUP BY job_id HAVING SUM(salary) > ORDER BY SUM(salary); Utiliser la clause HAVING

Copyright © 2004, Oracle. Tous droits réservés. SELECT MAX(AVG(salary)) FROM employees GROUP BY department_id; Imbriquer des fonctions de groupe Afficher le salaire moyen maximal :

Copyright © 2004, Oracle. Tous droits réservés. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; Synthèse Ce chapitre vous a permis d'apprendre à : utiliser les fonctions de groupe COUNT, MAX, MIN et AVG écrire des interrogations qui utilisent la clause GROUP BY écrire des interrogations qui utilisent la clause HAVING

Copyright © 2004, Oracle. Tous droits réservés. Présentation de l'exercice 4 Cet exercice porte sur les points suivants : écrire des interrogations qui utilisent les fonctions de groupe effectuer des regroupements par lignes afin d'obtenir plusieurs résultats limiter les groupes à l'aide de la clause HAVING

Copyright © 2004, Oracle. Tous droits réservés.