dedoublonner un jeu de resultat (Boole)

Présentez quelques fonctionnalités découvertes au gré de vos développements.

dedoublonner un jeu de resultat (Boole)

Messagede LordRhumSifflar le Mer 21 Jan 2009 18:49

Petit truc que je viens de me rappeler.
Si cela peut aider...

Voici un moyen de dé-doublonner un jeu de résultat très facilement(sans passer par des group By):
Soit un jeu de résultat q avec 3 champs A B C
renvoyant 5 tuples
A B C
1> 1 1 1
2> 1 1 2
3> 2 2 2
4> 2 2 2
5> 1 1 1

  1.  
  2. <cfquery dbtype="query" name="q">
  3. SELECT A, B, C FROM q UNION SELECT A, B, C FROM q
  4. </cfquery>
  5.  

et voila le jeu est dé-doublonné.

A bientôt.
LordRhumSifflar
 
Messages: 8
Inscription: Lun 27 Oct 2008 17:06

Re: dedoublonner un jeu de resultat (Boole)

Messagede eric00000007 le Jeu 22 Jan 2009 23:44

Merci. Je ne l'ai jamais utilisé ... J'espère y penser le moment voulu ca semble fort utile. Il y a un article la dessus et ta solution semble tellement simple. Cela semble insensible à la casse sous MySQL.
  1. -- Création de la table
  2. CREATE TABLE `t_doublon` (
  3.   `num` int(11) DEFAULT NULL,
  4.   `nom` varchar(32) DEFAULT NULL,
  5.   `prenom` varchar(16) DEFAULT NULL,
  6.   `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  7.   PRIMARY KEY (`id`)
  8. )  AUTO_INCREMENT=1;
  9.  
  10. -- Remplissage de la table
  11. INSERT INTO `t_doublon` VALUES ('33', 'DUPONT', 'marc', '1');
  12. INSERT INTO `t_doublon` VALUES ('33', 'DUPONT', 'marc', '2');
  13. INSERT INTO `t_doublon` VALUES ('33', 'DUPONT', 'marc', '3');
  14. INSERT INTO `t_doublon` VALUES ('47', 'DUPOND', 'alain', '4');
  15. INSERT INTO `t_doublon` VALUES ('59', 'DUPOND', 'alain', '5');
  16. INSERT INTO `t_doublon` VALUES ('65', 'Dupond', 'Frédéric', '6');
  17. INSERT INTO `t_doublon` VALUES ('78', 'DUPOND', 'frédéric', '7');
  18. INSERT INTO `t_doublon` VALUES ('81', 'DUPOND', 'fréd', '8');
  19. INSERT INTO `t_doublon` VALUES ('99', 'DUPON', 'éric', '9');
  20. INSERT INTO `t_doublon` VALUES ('33', 'DUPONT', 'Marc', '10');
  21. INSERT INTO `t_doublon` VALUES ('33', 'Dupont', 'Marc', '11');
  22.  
  23. -- Detection des doublons
  24. SELECT
  25. COUNT(*) AS NBR_DOUBLES,
  26. num,
  27. nom,
  28. prenom
  29. FROM   T_DOUBLON
  30. GROUP  BY num, nom, prenom
  31. HAVING COUNT(*) > 1;
  32.  
  33. -- Avec  Union
  34. SELECT
  35. num,
  36. nom,
  37. prenom
  38. FROM t_doublon
  39. UNION
  40. SELECT
  41. num,
  42. nom,
  43. prenom
  44. FROM t_doublon;

Source:
http://sqlpro.developpez.com/cours/doublons/
http://sqlpro.developpez.com/cours/divrelationnelle/
eric00000007
 
Messages: 425
Inscription: Mer 31 Oct 2007 10:55
Localisation: Paris


Retourner vers Documentation, trucs et astuces, études de cas

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron