[oracle] récupérer un nom de domaine a partir de l'email ?

récupérer un nom de domaine a partir de l'email ? [oracle] - SQL/NoSQL - Programmation

Marsh Posté le 13-11-2007 à 18:22:22    

Hello,
j'essaye de recupérer des nom de domaines a partir d'emails le tout en full sql:

 

SELECT  email, substr( substr(email,INSTR(email,'@')+1) ,0,INSTR(substr(email,INSTR(email,'@')+1),'.')-1) as ndd
from hm_newsletter_reading hnr,membres_nl pm
WHERE hnr.UIDKW=pm.UIDKW
AND hnr.ID_NEWSLETTER=247

 

ceci fonctionne mais de nombreuse interrogations subsistent.

 

On peux voir que des fragments de la req se repetent ,j'ai tenté d'utiliser des alias et oracle ( 10g ) n en veux pas ! :

 
Citation :

 

Error starting at line 1 in command:

 

SELECT  substr(email,INSTR(email,'@')+1) as startndd ,substr( startndd ,0,INSTR(startndd,'.')-1) as ndd
from hm_newsletter_reading hnr,membres_nl pm
WHERE hnr.UIDKW=pm.UIDKW
AND hnr.ID_NEWSLETTER=247

 

Error at Command Line:1 Column:80
Error report:
SQL Error: ORA-00904: "STARTNDD": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

 

J'aimerai aussi pouvoir faire des counts pour connaitre le nombre d'occurence pour un nom de domaine:

 

sous mysql j'aurai fait un truc du style:

 

select count(*), substr( substr(email,INSTR(email,'@')+1) ,0,INSTR(substr(email,INSTR(email,'@')+1),'.')-1) as ndd
from mesTables
group by ndd

 

la encore il rejete mon alias ...

 

quelqu' un pour m'eclairer  :sweat: ?


Message édité par veryfree le 13-11-2007 à 18:25:36
Reply

Marsh Posté le 13-11-2007 à 18:22:22   

Reply

Marsh Posté le 13-11-2007 à 18:39:54    

Pour les stats par nom de domaine j'ai trouvé:

Code :
  1. SELECT  count(*) as tot,substr( substr(email,INSTR(email,'@')+1) ,0,INSTR(substr(email,INSTR(email,'@')+1),'.')-1)
  2. from hm_newsletter_reading hnr,membres_it pm
  3. WHERE hnr.UIDKW=pm.UIDKW
  4. AND hnr.ID_NEWSLETTER=29
  5. group by substr( substr(email,INSTR(email,'@')+1) ,0,INSTR(substr(email,INSTR(email,'@')+1),'.')-1)
  6. having count(*)>10
  7. order by tot desc


 
j'imagine qu'il met en cache son calcul sinon ce sera inexploitable en prod.
si quelqu'un peux confirmer ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed