OVH Cloud OVH Cloud

Requete SQL - n enregistrements par groupe

3 réponses
Avatar
Daniel Corréia
Bonjour,


Comment extraire n enregitrements par groupe :

ex. : extraction d'un fichier d'adresses de 5 enregistrements différents
maxi pour un même département...
Ces 5 adresses doivent avoir des villes différentes


Ai déjà vu ça...

--
Daniel CORREIA

3 réponses

Avatar
Fred BROUARD
précise ta pensée et donne un descriptif des tables sous formes d'ordres
SQL, et un jeu de données (ordres INSERT) ainsi que le résultat que tu
veut obtneir.

A +

Daniel Corréia a écrit:
Bonjour,


Comment extraire n enregitrements par groupe :

ex. : extraction d'un fichier d'adresses de 5 enregistrements différents
maxi pour un même département...
Ces 5 adresses doivent avoir des villes différentes


Ai déjà vu ça...

--
Daniel CORREIA





--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
Med Bouchenafa[MVP]
Quelque chose du genre (sur la table customers de la base Northwind)


SELECT DISTINCT C1.country, C1.city
FROM customers C1
WHERE C1.city IN (SELECT DISTINCT TOP 5 C2.city FROM customers C2 WHERE C2.country = C1.country)
ORDER BY C1.country


--
Bien cordialement
Med Bouchenafa
TETRASET
75015 Paris
"Daniel Corréia" a écrit dans le message de news:
OwVBQCV$
Bonjour,


Comment extraire n enregitrements par groupe :

ex. : extraction d'un fichier d'adresses de 5 enregistrements différents
maxi pour un même département...
Ces 5 adresses doivent avoir des villes différentes


Ai déjà vu ça...

--
Daniel CORREIA




Avatar
Daniel Corréia
Bonjour,


mille excuses pour le "flou" de la question.

Un exemple :
Soit le fichier d'adresses suivant :

CREATE TABLE ADRESSE
(
ADR_RUE varchar(50) NULL,
ADR_CP varchar(10) NULL,
ADR_VILLE varchar(50) NULL,
ADR_PAYS varchar(50) NULL,
ADR_TEL varchar(20) NULL,
ADR_FAX varchar(20) NULL,
ADR_MEL varchar(50) NULL,
ADR_WEB varchar(50) NULL,
ADR_ID int NOT NULL IDENTITY (1, 1)
) ON [PRIMARY]

ALTER TABLE ADRESSE ADD CONSTRAINT
PK_Table1 PRIMARY KEY CLUSTERED
(
ADR_ID
) ON [PRIMARY]


INSERT INTO ADRESSE VALUES('13 rue des lilas','75001','PARIS','','01 02 03
13 10','01 02 03 10 13','','')
INSERT INTO ADRESSE VALUES('14 rue des lilas','75001','PARIS','','01 02 03
14 10','01 02 03 10 14','','')
INSERT INTO ADRESSE VALUES('15 rue des lilas','75001','PARIS','','01 02 03
15 10','01 02 03 10 15','','')
INSERT INTO ADRESSE VALUES('16 rue des lilas','75001','PARIS','','01 02 03
16 10','01 02 03 10 16','','')
INSERT INTO ADRESSE VALUES('17 rue des lilas','75001','PARIS','','01 02 03
17 10','01 02 03 10 17','','')
INSERT INTO ADRESSE VALUES('18 rue des lilas','75001','PARIS','','01 02 03
18 10','01 02 03 10 18','','')
INSERT INTO ADRESSE VALUES('19 rue des lilas','75001','PARIS','','01 02 03
19 10','01 02 03 10 19','','')
INSERT INTO ADRESSE VALUES('20 rue des lilas','69001','LYON','','04 02 03 20
12','04 02 03 12 20','','')
INSERT INTO ADRESSE VALUES('21 rue des lilas','69001','LYON','','04 02 03 21
12','04 02 03 12 21','','')
INSERT INTO ADRESSE VALUES('22 rue des lilas','69001','LYON','','04 02 03 22
12','04 02 03 12 22','','')
INSERT INTO ADRESSE VALUES('23 rue des lilas','69001','LYON','','04 02 03 23
12','04 02 03 12 23','','')
INSERT INTO ADRESSE VALUES('24 rue des lilas','69001','LYON','','04 02 03 24
12','04 02 03 12 24','','')
INSERT INTO ADRESSE VALUES('25 rue des lilas','69001','LYON','','04 02 03 25
12','04 02 03 12 25','','')
INSERT INTO ADRESSE VALUES('26 rue des lilas','69001','LYON','','04 02 03 26
12','04 02 03 12 26','','')
INSERT INTO ADRESSE VALUES('27 rue des lilas','69001','LYON','','04 02 03 27
12','04 02 03 12 27','','')



Je veux extraire n enregistrements pour chaque couple département,ville
département = 2 premiers caractères du champ ADR_CP

Ce qui donnerait dans cet exemple :
'13 rue des lilas' - 75001 PARIS
'14 rue des lilas' - 75001 PARIS
'15 rue des lilas' - 75001 PARIS
'20 rue des lilas' - 69001 LYON
'21 rue des lilas' - 69001 LYON
'22 rue des lilas' - 69001 LYON

Pas d'exigence sur les critères des adresses remontées au sein du couple
département,ville



Le vrai fichier à requeter est assez volumineux (1 million
d'enregistrements)...



"Fred BROUARD" a écrit dans le message de news:

précise ta pensée et donne un descriptif des tables sous formes d'ordres
SQL, et un jeu de données (ordres INSERT) ainsi que le résultat que tu
veut obtneir.

A +

Daniel Corréia a écrit:
> Bonjour,
>
>
> Comment extraire n enregitrements par groupe :
>
> ex. : extraction d'un fichier d'adresses de 5 enregistrements différents
> maxi pour un même département...
> Ces 5 adresses doivent avoir des villes différentes
>
>
> Ai déjà vu ça...
>
> --
> Daniel CORREIA
>
>

--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************