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:

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)
);
Puis quelques valeurs pour l'exemple:

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:

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;
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
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+