2012-03-20 37 views
6

Gerçekten bir sql sorgusuyla sıkışıp kaldım ... Umarım birileri bana biraz ışık tutabilir. İşteMysql benzersiz değerleri seçiyor

Ben bu tablodan, e-posta dayalı olmayan çoğaltılamaz tüm verileri çekip istiyorum benim tabloda yinelenen veriler bulunmaktadır

mysql> show fields from france_data; 
+----------+-------------+------+-----+---------+----------------+ 
| Field | Type  | Null | Key | Default | Extra   | 
+----------+-------------+------+-----+---------+----------------+ 
| id  | int(11)  | NO | PRI | NULL | auto_increment | 
| email | varchar(45) | YES |  | NULL |    | 
| name  | varchar(45) | YES |  | NULL |    | 
| lastname | varchar(45) | YES |  | NULL |    | 
| quality | varchar(45) | YES |  | NULL |    | 
| country | varchar(45) | YES |  | NULL |    | 
| state | varchar(45) | YES |  | NULL |    | 
| year  | varchar(45) | YES |  | NULL |    | 
| owner | varchar(45) | YES |  | NULL |    | 
+----------+-------------+------+-----+---------+----------------+ 
9 rows in set (0.00 sec) 

İşte yakalamak gibi benim tablo görüntüsü.

Böyle basit bir sayım ran:

mysql> select count(*) from france_data; 

ve bu sonuç kümesidir: Artık

+----------+ 
| count(*) | 
+----------+ 
| 2405259 | 
+----------+ 
1 row in set (0.01 sec) 

böyle bir sayım çalıştırmayı denedi:

mysql> select count(*) from france_data group by email; 

Sadece kaç tane benzersiz kayıt olduğumu görmek için. Ne yazık ki bu kez dışarı.

herhangi biri ben eşsiz satırların sayısını nasıl yapabileceğinizi biliyor ve aynı tipte seçiyor mu? E-posta dayalı benzersiz satırları bakıyorsanız

cevap

13

basit

select count(distinct email) from france_data 

hile yapmak gerekir, bu

SELECT COUNT(DISTINCT email) FROM france_data 
+0

Thats büyük bir deneyin !! Sayı işler :) ancak şimdi aynı sorguyu COUNT() olmadan denedim. Çalışmak için uzun bir zaman mı, yoksa asılı ve işe yaramazsa, emin değilim. Seçimi böyle mi yapıyorum? France_data'dan SELECT DISTINCT e-postasını döndür; – Beyerz

+0

Bence LIMIT komutuyla 1'den fazla deyimi sorgulayabilirsiniz: [link] (http://php.about.com/od/mysqlcommands/g/Limit_sql.htm) – punny

+0

Ben 500 satırın sonuçlandırılması gereken '0,500 Limit' kullanıyorum, o zaman sadece farklı değerler döndürülüyor, bu da bana 500 satırdan daha az bir dönüşe neden oluyor? – Beyerz

3

deneyin. ayrıca her e-postanın yinelenen sayısını görmek için arıyorsanız

, şunu deneyin:

select email, count(*) as cnt from france_data group by email order by cnt desc; 
+0

Farklı sayım benim için çalışıyor, yinelenen kaç kez olduğunu bilmem gerekmiyor, ancak e-posta alanları benzersiz olan tüm alanları gösteren bir sonuç tablosu vermem gerekiyor. – Beyerz

+0

Vay, bu ikinci sorgu tam olarak aradığım şey! Bir şekilde, grup tarafından nasıl davrandığını asla sindirmedim. Çok teşekkürler @Nikhil! –

0

bu

select count(distinct email) 
from france_data 
order by email; 
İlgili konular