Par Nicolas SUPRIN, mercredi 16 mai 2007 à 19:48 | MySQL | #102 | rss
Voici une requête qui, comme l'indique ce long titre, permet de ressortir la liste des différents FAI contenu dans les emails d'une table.
C'est utile pour faire des statistiques sur la provenance de vos clients / utilisateurs.
Je la note ici, car mon magique cerveau à un peu mis de temps à la trouver.
La table
Soit une table user contenant un champ mail :
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `mail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) )
Jeu de données
INSERT INTO user (id, mail) VALUES (1, "toto@hotmail.com"); INSERT INTO user (id, mail) VALUES (2, "toto@hotmail.fr"); INSERT INTO user (id, mail) VALUES (3, "titi@hotmail.com"); INSERT INTO user (id, mail) VALUES (4, "titi@voila.fr"); INSERT INTO user (id, mail) VALUES (5, "bide@gmail.com"); INSERT INTO user (id, mail) VALUES (6, "chose@truc.biz");
La requète
SELECT RIGHT(mail, LENGTH(mail) - INSTR(mail, '@')) AS fai, COUNT(mail) rang FROM user GROUP BY fai ORDER BY rang DESC
Le résultat
+-------------+------+ | fai | rang | +-------------+------+ | hotmail.com | 2 | | hotmail.fr | 1 | | voila.fr | 1 | | gmail.com | 1 | | truc.biz | 1 | +-------------+------+
Bon, la forcement, ce n'est pas trés représentatif, mais il faut imaginer sur plusieurs dizaines de milliers d'emails. C'est interressant et instructif.
Source :
http://dev.mysql.com/doc/refman/5.0/fr/string-functions.html





Interressant...
Aucun trackback.
Pour faire un trackback sur ce billet : http://www.blog.cactuscrew.com/tb.php?id=102&chk=iwwfmk