Forum

Mail adreslerini gr...
 
Bildirimler
Hepsini Temizle

Mail adreslerini gruplama

5 Yazılar
2 Üyeler
0 Reactions
2,071 Görüntüleme
(@aliahmet)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

Merhabalar, 

SQL Server 2012 kullanıyorum  

 Kullanıcı tablom var. Bu tabloda KimlikNO-AdıSoyadı-MAIL adreslerinden oluşan sütunlar var.

mail adres uzantılarına göre nasıl gruplayabilirim. Örneğin kaç adet Hotmail, gmail  uzantılı mail adresi var?

mail adres satırında gmail, Hotmail yazanları gruplayabiliyorum fakat uzantısını bilmediğim mail adresleri var. Onları tek tek tespit etmem zor.

örneğin @ karakterinden sonra yazılan uzantılara göre gruplama yapabilir miyim?

 Teşekkürler.. 

 

 
Gönderildi : 04/02/2014 19:42

(@aliahmet)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

Yavuz bey teşekkürler...

 Bir konuda daha bilgiye ihtiyacım var. @ işaretinden sonra mail adres uzantıları yazmakta. Şöyle bir şey yapamak mümkün mü? @ işaretinden sonra gelen mail adres uzantılarını kendi içerisinde gruplama. Bilinen mail uzantılarını tespit edebiliyorum. Sıkıntı bazı mail uzantıları farklı isimleride bunları tespit edemedim. Bundan @ işaretinden sonraki alanları kendi içerisinde gruplamak istiyorum

@gmail.com (100 Adet)
@hotmail.com (50 Adet)
@hotmail.com.tr (10 Adet)
@windowslive.com (5 Adet)

 

 
Gönderildi : 05/02/2014 12:20

(@aliahmet)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

WHERE Mail NOT LIKE hotmail, gmail, .... gibi yazarsanız, bunların dışındakileri gruplayacaktır, üstteki sorgudaki gibi yazmanız gerekiyor

 

Aşağıdaki kodu yazdığımda hata alıyorum

Msg 8120, Level 16, State 1, Line 1

 

Column 'KULLAN.EMAIL' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

 

Yazdığım Sorgu

SELECT EMAIL




FROM KULLAN




WHERE EMAIL LIKE '%hotmail%'




GROUP BY




CASE




WHEN EMAIL LIKE '%hotmail%' THEN 'hotmail'




ELSE NULL




END


 

 

 

 
Gönderildi : 05/02/2014 16:12

(@kenanilgun)
Gönderiler: 544
Üye
 

Merhaba,

Ben aşağıdaki gibi bir örnek çıkardım, kendi tablolarınız üzerinden test yapabilirsiniz. 

SELECT SUBSTRING(email, CHARINDEX('@', email)+1, 999) AS Domain, COUNT(*) AS Count FROM EmailList AS el GROUP BY SUBSTRING(email, CHARINDEX('@', email)+1, 999)

 
Gönderildi : 09/02/2014 02:34

(@aliahmet)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

Merhaba,

Ben aşağıdaki gibi bir örnek çıkardım, kendi tablolarınız üzerinden test yapabilirsiniz. 

SELECT SUBSTRING(email, CHARINDEX('@', email)+1, 999) AS Domain, COUNT(*) AS Count FROM EmailList AS el GROUP BY SUBSTRING(email, CHARINDEX('@', email)+1, 999)

Çok teşekkür ederim. 

 
Gönderildi : 10/02/2014 11:49

Paylaş: