+ Rispondi alla Discussione
Risultati da 1 a 8 di 8

[SQL] GROUP BY ... il dominio di un campo email

Ultimo Messaggio di sherlock il:
  1. #1
    User L'avatar di sherlock
    Data Registrazione
    Sep 2006
    Località
    Italia, Bologna
    Messaggi
    286

    [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

  2. #2
    Esperto L'avatar di FuSioNmAn
    Data Registrazione
    Jan 2007
    Località
    Salerno
    Messaggi
    495
    mhm...con sql classico non mi pare si possa fare.
    Se devi farlo in sql server si può fare con T-sql
    Cosa usi?

  3. #3
    User L'avatar di sherlock
    Data Registrazione
    Sep 2006
    Località
    Italia, Bologna
    Messaggi
    286
    per ora il database è access, ma potrei migrarlo a sql volendo...
    aspetto illuminazioni, se possibile su entrambe le tecnologie!
    grazie!!

    Marco

  4. #4
    Moderatore L'avatar di paocavo
    Data Registrazione
    Mar 2006
    Località
    Lecce, Italy
    Messaggi
    1,016
    Aggiungi paocavo su Facebook Aggiungi paocavo su Linkedin
    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:
    Codice:
    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.
    Ultima modifica di paocavo; 14-03-07 alle 08:54

  5. #5
    Esperto L'avatar di FuSioNmAn
    Data Registrazione
    Jan 2007
    Località
    Salerno
    Messaggi
    495
    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

    Codice:
    select count(contatore) as numero,right(email,len(email)-charindex('@',email)) as dominio_email
    from tuatabella
    group by right(email,len(email)-charindex('@',email))

  6. #6
    User L'avatar di sherlock
    Data Registrazione
    Sep 2006
    Località
    Italia, Bologna
    Messaggi
    286
    WOW FUNZIONA!!!
    PaoCavo sei fantastico!!!
    Grazie anche a FuSioNmAn,

    Marco

  7. #7
    Moderatore L'avatar di paocavo
    Data Registrazione
    Mar 2006
    Località
    Lecce, Italy
    Messaggi
    1,016
    Aggiungi paocavo su Facebook Aggiungi paocavo su Linkedin
    Citazione Originariamente Scritto da FuSioNmAn Visualizza Messaggio
    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:




  8. #8
    User L'avatar di sherlock
    Data Registrazione
    Sep 2006
    Località
    Italia, Bologna
    Messaggi
    286
    questo è un gran consiglio!!
    non ci avevo pensato!
    grazie!

    Marco

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.