Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
3 avril 2012 2 03 /04 /avril /2012 22:49

 

Oracle MAX.

Comment trouver la valeur MAXIMUM d'une expression avec la fonction de groupe sql MAX.
Comment sélectionner la plus grande valeur MAXIMUM d'une table.

 

 

Fonction SQL MAX.

La fonction de groupe PL-SQL MAX est utilisée pour obtenir la valeur maximale d'une colonne

 

SYNTAXE FONCTION MAX.

 
 MAX( [DISTINCT | ALL] expr ) 

Si expression est un type de données date / heure alors la fonction MAX renvoie une date.
Si expression est un type de données numérique alors la fonction MAX renvoie un nombre.
Si expression est un type de données caractère alors la fonction MAX retourne un VARCHAR2 (suivant le Character set défini).
L'utilisation de DISTINCT ou ALL est syntaxiquement acceptable, mais son utilisation n'a pas d'incidence sur le calcul d'un MAX.

 

FONCTION DE GROUPE MAX.

 
 TABLE DEMO SQL> SELECT * FROM SCOTT.EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------------------------------------------------------------------------- 7369 SMITH CLERK 7902 800.5 30 7499 ALLEN SALESMAN 20/02/1981 1600 300 30 7521 WARD SALESMAN 7698 22/02/1981 1250 500.56 30 7566 JONES MANAGER 7839 02/04/1981 2975 30 7654 MARTIN SALESMAN 7698 28/09/1981 1250 1400 40 

 

FONCTION MAX SANS REGROUPEMENT.

 
 SQL> SELECT MAX(ENAME), MAX(DISTINCT HIREDATE), MAX(SAL), MAX(COMM), MAX(ALL DEPTNO) FROM SCOTT.EMP; MAX(ENAME) MAX(DISTIN MAX(SAL) MAX(COMM) MAX(ALLDEPTNO) ---------- ---------- ---------- ---------- -------------- WARD 28/09/1981 2975 1400 40 SQL> 

La fonction MAX renvoie ici, un type VARCHAR2, un type DATE et du type NUMBER.
Ici l'utilisation de MAX nous retourne pour chacune des colonnes la valeur MAXIMUM.

 

FONCTION MAX AVEC CLAUSE GROUP BY.

 
 SQL> COL JOB FORMAT A10 SQL> SELECT JOB, MAX(HIREDATE), MAX(SAL), MAX(COMM), MAX(DEPTNO) FROM SCOTT.EMP GROUP BY (JOB); JOB MAX(HIREDA MAX(SAL) MAX(COMM) MAX(DEPTNO) ---------- ---------- ---------- ---------- ----------- CLERK 800,5 30 SALESMAN 28/09/1981 1600 1400 40 MANAGER 02/04/1981 2975 30 SQL> 

Pour le regroupement de données explicite, il faut utiliser la clause GROUP BY
La clause GROUP BY liste les colonnes du groupement, ici il se fait sur le champ JOB. Il doit y avoir une cohérence entre les colonnes du SELECT et du GROUP BY.

 

FONCTION MAX AVEC CONDITION HAVING.

La condition lors d’un regroupement se fait en utilisant la clause HAVING, elle permet de poser des conditions sur chaque regroupement MAX.

 
 SQL> COL JOB FORMAT A10 SQL> SELECT JOB, MAX(HIREDATE), MAX(SAL), MAX(COMM), MAX(DEPTNO) FROM SCOTT.EMP GROUP BY (JOB) HAVING MAX(SAL)>801 AND MAX(COMM) > 1; JOB MAX(HIREDA MAX(SAL) MAX(COMM) MAX(DEPTNO) ---------- ---------- ---------- ---------- ----------- SALESMAN 28/09/1981 1600 1400 40 SQL> 

 

 

Haut de Page www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Fonction SQL MIN
• Fonction SQL COUNT
• Instruction SQL GROUP BY
• Instruction SQL SELECT FROM WHERE

Partager cet article

Repost 0
Published by Daniel Roesch - dans FUNCTIONS - SQL
commenter cet article

commentaires