Selectionner les lignes qui ont la valeus fréquante

Fermé
hamma.manel1 - 14 juin 2019 à 16:21
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 17 juin 2019 à 09:29
Bonjour,

j'ai besoin d'une requête sql qui sélectionne les ligne qui ont la valeur fréquente pour chaque attribut un exemple pour mieux comprendre

ID nombre machin
1 16 pouet
2 32 plop
3 16 blah!
4 54 fichtre
5 32 diantre
6 8 amphigourique
7 16 seize
8 63 klaxon
9 12 thiéfaine
10 78 progressif
11 12 plop

la requete doit m'afficher
ID nombre machin
1 16 pouet
3 16 blah!
7 16 seize
2 32 plop
11 12 plop

2 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié le 14 juin 2019 à 17:38
Bonjour,

Cela n'a rien de trivial (si j'ai bien compris).

J'essaierais quelque chose de ce goût-là :
SELECT t.ID, t.Nombre, t.Machin
FROM ma_table t
INNER JOIN (
    SELECT Nombre, COUNT(*) as nc FROM ma_table GROUP BY Nombre
) n ON n.Nombre = t.Nombre
INNER JOIN (
    SELECT Machin, COUNT(*) as mc FROM ma_table GROUP BY Machin
) m ON m.Machin = t.Machin
WHERE nc > 1 OR mc > 1
ORDER BY 
    CASE WHEN nc > mc THEN nc ELSE mc END DESC,
    CASE WHEN nc > mc THEN t.Nombre ELSE -1 END,
    CASE WHEN nc > mc THEN 'zz' ELSE t.Machin END,
    t.Id

Par contre c'est du bricolage, si tu as 200 champs ça va être super galère...

Xavier

(Edit : j'ai modifié le ORDER BY)
0
hamma.manel1
14 juin 2019 à 19:22
merci de m'avoir répondu j'ai appliqué ta requette mais un message d'exeption qui s'affiche " Une exception non gérée du type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll.

Informations supplémentaires : L'identificateur en plusieurs parties "t.Number_pregnant" ne peut pas être lié."
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
17 juin 2019 à 09:29
Bonjour,

L'erreur indique que tu as utilisé une colonne t.Number_pregnant qui n'existe pas. Vérifie bien ta requête.

Xavier
0