- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [SQL] GROUP BY ... il dominio di un campo email
-
[SQL] GROUP BY ... il dominio di un campo email
il group by ho bisogno di farlo che consideri le e-mail che hanno uguale estensione dopo @, per cui che mi conti quante mail @libero.it, @yahoo.it, @gmail.com, etc. ci sono nel mio database...
come posso fare?
grazie!Marco
-
mhm...con sql classico non mi pare si possa fare.
Se devi farlo in sql server si può fare con T-sql
Cosa usi?
-
per ora il database è access, ma potrei migrarlo a sql volendo...
aspetto illuminazioni, se possibile su entrambe le tecnologie!
grazie!!Marco
-
E' semplice basta ricordare che all'interno della query SQL si MS Access è possibile utilizzare le funzioni di elaborazione delle stringhe definite in Access stesso. In questo caso:
SELECT first(right(tbl_email.email,len(email)-instr(email,'@'))) AS DOMINIO, count(right(tbl_email.email,len(email)-instr(email,'@'))) AS TOTALE FROM tbl_email GROUP BY right(tbl_email.email,len(email)-instr(email,'@')); ```Ricordo che: 1) right(stringa, num_car) restituisce gli ultimi num_car caratteri di una stringa. 2) len(stringa) restituisce la lunghezza di una stringa 3) Instr(stringa, 'X') restituisce la posizione della prima occorreza del carattere 'X' all0interno della stringa. quindi, combinando le funzioni, possiamo ottenere la sottostringa che sta a destra di un carattere fissato (in questo caso la '@') con l'espressione: **right(stringa,len(stringa)-instr(stringa,'@')))** PS: Attento agli apici che all'interno di SQL devono essere singoli.
-
Non ricordavo che access avesse ste funzioni...è praticamente vbscript.
Cmq in sql server è molto simile ma non esiste instr ma charindex che fa più o meno la stessa cosa
select count(contatore) as numero,right(email,len(email)-charindex('@',email)) as dominio_email from tuatabella group by right(email,len(email)-charindex('@',email))
-
WOW FUNZIONA!!!
PaoCavo sei fantastico!!!
Grazie anche a FuSioNmAn,Marco
-
@FuSioNmAn said:
Non ricordavo che access avesse ste funzioni...è praticamente vbscript.
Infatti!
Per avere un'elenco dettagliato di tutte le funzioni definite all'interno dell' SQL di MS Access basta utilizzare il *Generatore di espressioni *attivabile clicckando sulla bacchetta magica (nella barra degli strumenti) dopo aver selezionato il campo su cui si intende operare da "Visualizzazione struttura" della query di selezione:
-
questo è un gran consiglio!!
non ci avevo pensato!
grazie!Marco