Salut a tous,
J'étudie actuellement le fonctionnement des vues et voici le point sur lequel
je bloque: je dois créer une vue pour effectuer un comptage mais le problème est qu'il n'est pas possible d'utiliser des fonctions comme GROUP BY, DISTINCT et ROWNUM...
Quelle serait donc le(s) alternative(s) pour y parvenir?
Voici plus précisément mon cas détaillé:
Travaille sur Oracle iSQL*Plus
Ma table DDL:
Puis quelques valeurs pour l'exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE jobs_agents ( agent_id NUMBER(4), job_id NUMBER(4) );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 INSERT INTO JOBS_AGENTS VALUES (1,6); INSERT INTO JOBS_AGENTS VALUES (1,13); INSERT INTO JOBS_AGENTS VALUES (1,17); INSERT INTO JOBS_AGENTS VALUES (2,3); INSERT INTO JOBS_AGENTS VALUES (2,8); INSERT INTO JOBS_AGENTS VALUES (2,9); INSERT INTO JOBS_AGENTS VALUES (2,14); INSERT INTO JOBS_AGENTS VALUES (3,15); INSERT INTO JOBS_AGENTS VALUES (3,16); INSERT INTO JOBS_AGENTS VALUES (3,22); INSERT INTO JOBS_AGENTS VALUES (3,24); INSERT INTO JOBS_AGENTS VALUES (4,1); INSERT INTO JOBS_AGENTS VALUES (4,2); INSERT INTO JOBS_AGENTS VALUES (5,7); INSERT INTO JOBS_AGENTS VALUES (5,10); INSERT INTO JOBS_AGENTS VALUES (6,23); INSERT INTO JOBS_AGENTS VALUES (7,11); INSERT INTO JOBS_AGENTS VALUES (7,17); INSERT INTO JOBS_AGENTS VALUES (8,25); INSERT INTO JOBS_AGENTS VALUES (9,4); INSERT INTO JOBS_AGENTS VALUES (9,5); INSERT INTO JOBS_AGENTS VALUES (10,12); INSERT INTO JOBS_AGENTS VALUES (11,19); INSERT INTO JOBS_AGENTS VALUES (11,20); INSERT INTO JOBS_AGENTS VALUES (11,21); INSERT INTO JOBS_AGENTS VALUES (11,26);
Maintenant l'information DML que je dois isoler:
Evidement, lorsque je cré la vue, celle-ci échoue fatalement à cause de la fonction GROUP BY
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT agent_id, COUNT(job_id) FROM jobs_agents GROUP BY agent_id ORDER BY agent_id;:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE VIEW jobs_per_agent AS ( SELECT agent_id, COUNT(job_id) FROM jobs_agents GROUP BY agent_id ORDER BY agent_id );
Si quelqu'un a une solution, qu'il n'hésite pas!
Merci pour vos réponses. a+
Partager