J'essaye de faire une requête qui me récupèrerais les 100 domaines mails les plus utilisées dans ma base de données.
Quelqu'un pourrait m'aider?
J'essaye de faire une requête qui me récupèrerais les 100 domaines mails les plus utilisées dans ma base de données.
Quelqu'un pourrait m'aider?
Je viens de faire cette requete qui me permet de récupérer tous les domaines mails de ma base mais j'aimerais affiner ma requete pour récupérer les 100 domaines les plus utilisées...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT DISTINCT SUBSTRING(E_MAIL, 1 + CHARINDEX('@', E_MAIL), LEN(E_MAIL) - CHARINDEX('@', E_MAIL)) AS domaine FROM PERSONNE WHERE E_MAIL IS NOT NULL AND E_MAIL != ''
Merci d'avance de votre aide![]()
Faudrait qu'on aie des infos...Envoyé par gwadakillah
Comment tu sais qu'un domaine est plus utilisé qu'un autre ? Donne nous la structure de ta table qu'on puisse voir ce qu'on peut faire.
En fait je récupères dans la table PERSONNE l'adresse ( E_MAIL ) de tous les personnes contenues dans ma base et c'est à partir de ce champ email que je veux savoir les 100 domaines les plus utilisées dans ma base de données et non en général :pComment tu sais qu'un domaine est plus utilisé qu'un autre ?
Voici la table que j'utilise
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 CREATE TABLE [dbo].[PERSONNE] ( [ID_PERSONNE] [numeric](9, 0) IDENTITY (1, 1) NOT NULL , [ID_TITRE] [int] NOT NULL , [ID_DOSSIER] [numeric](8, 0) NULL , [ID_ADRESSE] [numeric](18, 0) NULL , [TITRE] [nvarchar] (30) COLLATE French_CI_AS NULL , [NOM_PERSONNE] [nvarchar] (100) COLLATE French_CI_AI NOT NULL , [PRENOM_PERSONNE] [nvarchar] (100) COLLATE French_CI_AI NOT NULL , [SOCIETE] [nvarchar] (50) COLLATE French_CI_AS NULL , [TELEPHONE_1] [nvarchar] (20) COLLATE French_CI_AS NULL , [TELEPHONE_2] [nvarchar] (20) COLLATE French_CI_AS NULL , [TELECOPIE] [nvarchar] (20) COLLATE French_CI_AS NULL , [E_MAIL] [nvarchar] (100) COLLATE French_CI_AS NULL , [E_MAIL_VALIDE] [bit] NOT NULL , [DATE_NAISSANCE] [smalldatetime] NULL , [SALARIE] [bit] NULL , [ID_ACTIVITE] [nchar] (1) COLLATE French_CI_AS NULL , [RELANCE_EMAIL] [bit] NULL , [E_MAIL_DATE_VALID] [datetime] NULL , [IS_VALIDATION_WEB] [bit] NULL , [IS_ORGANISATEUR] [bit] NOT NULL , [IS_BENEFICIAIRE] [bit] NOT NULL ) ON [PRIMARY] GO
Si je comprends bien tu aimerais compter et récupérer les 100 domaines d'adresses email les plus utilisés dans ta base ?
exactement et par ordre décroissant
Et voilà le travail :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT TOP 100 DISTINCT SUBSTRING(E_MAIL, 1 + CHARINDEX('@', E_MAIL), LEN(E_MAIL) - CHARINDEX('@', E_MAIL)) AS domaine, count(*) nb FROM PERSONNE WHERE E_MAIL IS NOT NULL AND E_MAIL != '' GROUP BY E_MAIL ORDER BY nb DESC![]()
Partager