Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[POSTRESQL] problème de group by

6 réponses
Avatar
Etienne
Salut.

je crée une clé pour identifier les pièces jointe de mails.
j'aimerai savoir si cette clé est unique.
je fais donc un

select cle, count(*) from mailattach group by cle having count(*) > 2;

sauf que voila. certain mails embarquent plusieurs fois la meme pièce
jointe. et dans ce cas il n'est pas problèmatique d'avoir un doublon.

j'aimerai donc savoir comment je peux faire pour ecrire la requête.

compter les nombres de clés identiques pour un identifiant de message
(idmail) différent

Etienne

6 réponses

Avatar
SQLpro
Bonjour,

Le 14/10/2010 11:36, Etienne a écrit :
Salut.

je crée une clé pour identifier les pièces jointe de mails.
j'aimerai savoir si cette clé est unique.
je fais donc un

select cle, count(*) from mailattach group by cle having count(*) > 2;

sauf que voila. certain mails embarquent plusieurs fois la meme pièce
jointe. et dans ce cas il n'est pas problèmatique d'avoir un doublon.

j'aimerai donc savoir comment je peux faire pour ecrire la requête.




Sans le decription de votre table difficile de vous répondre.

Mais il faut faire un COUNT(DISTINCT ???)
Avec ??? relatif à la colonne qui héberge le discriminant de la PJ...

compter les nombres de clés identiques pour un identifiant de message
(idmail) différent

Etienne



A +

--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
WebShaker
Le 16/10/2010 09:43, SQLpro a écrit :
Bonjour,
Sans le decription de votre table difficile de vous répondre.

Mais il faut faire un COUNT(DISTINCT ???)
Avec ??? relatif à la colonne qui héberge le discriminant de la PJ...



Ben voila j'ai une table genre

CREATE TABLE 'mailattach' (
idmail interger,
attachkey text,
...
)

j'ai besoin de savoir s'il existe des attachkey identiques pour des
idmail differents.

Etienne
Avatar
SQLpro
Le 16/10/2010 17:17, WebShaker a écrit :
CREATE TABLE 'mailattach' (
idmail interger,
attachkey text,
...
)



SELECT idmail
FROM mailattach
GROUP BY idmail
HAVING COUNT(DISTINCT attachkey) > 1

Et pour un cours sur SQL, mon site web, comme mon bouquin, peuvent vous
aider !

A +

--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Etienne
Le 16/10/2010 19:55, SQLpro a écrit :
SELECT idmail
FROM mailattach
GROUP BY idmail
HAVING COUNT(DISTINCT attachkey) > 1



Non.
c'est pas du tout ca que je cherche.
c'est même complètement l'inverse.

la tu me donne tous les mails qui ont deux pieces jointe ayant la meme
clé (ce qui peut arriver)

moi j'ai besoin de toutes les clé (attachkey) liée a au moins deux mails
(idmail) différent.

C'est pas aussi simple.
Etienne
Avatar
Ph. B.
Etienne a écrit :
Le 16/10/2010 19:55, SQLpro a écrit :
SELECT idmail
FROM mailattach
GROUP BY idmail
HAVING COUNT(DISTINCT attachkey) > 1



Non.
c'est pas du tout ca que je cherche.
c'est même complètement l'inverse.

la tu me donne tous les mails qui ont deux pieces jointe ayant la meme
clé (ce qui peut arriver)

moi j'ai besoin de toutes les clé (attachkey) liée a au moins deux mails
(idmail) différent.

C'est pas aussi simple.
Etienne



Bonjour,

J'ai lu rapidement le sujet mais je pense d'après ta formulation que :
SELECT attachkey
FROM mailattach
GROUP BY attachkey
HAVING COUNT(DISTINCT idmail) > 1
répondrait à ta question ? (il suffit de retourner le problème..)
--
Philippe.
Avatar
Etienne
Le 20/10/2010 12:00, Ph. B. a écrit :
J'ai lu rapidement le sujet mais je pense d'après ta formulation que :
SELECT attachkey
FROM mailattach
GROUP BY attachkey
HAVING COUNT(DISTINCT idmail) > 1
répondrait à ta question ? (il suffit de retourner le problème..)



Ah ben ouai, c'est ca.
Merci.

Etienne