2012-03-20 13 views
6

私は本当にSQLクエリに悩まされています...私は誰かが私のためにいくつかの光を出すのを助けることを願っています。ここでMysqlが一意の値を選択しています

が私のテーブルが

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) 

どのように見えるかをここでキャッチですが、私は私のテーブル内の重複データを持って、私は非重複した電子メールに基づいて、このテーブルからすべてのデータを引き出したいと思います。

私はこのような単純な数走っ:

mysql> select count(*) from france_data; 

をし、これが結果セットである:

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

今、私はこのような数を実行しようとした:

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

私が持っているユニークなレコードの数を確認するだけです。残念ながら、これはタイムアウトします。

一意の行数をカウントして同じタイプを選択する方法を知っている人はいますか?

答えて

13

あなたは電子メールに基づいて一意の行を見ている場合は、簡単な

select count(distinct email) from france_data 

はトリックを行う必要があり、この

SELECT COUNT(DISTINCT email) FROM france_data 
+0

を試してみてください!!カウントは動作します:)しかし、今はCOUNT()を使わずに同じクエリを試しました。私はそれがちょうど実行するために長い時間がかかる場合、またはそれがぶら下がっていると働いていない場合はわからない。これは私が選択を行う方法ですか? 'SELECT DISTINCT FROM france_data; – Beyerz

+0

私はあなたがLIMITコマンドで1つ以上のステートメントを分割できると思います。 [link](http://php.about.com/od/mysqlcommands/g/Limit_sql.htm) – punny

+0

私は、500行を取り除いた結果、「限界値0,500」を使用した場合、明らかに異なる値のみが返され、効果的に500行未満の戻り値が得られますか? – Beyerz

3

を試してみてください。

あなたはまた、各電子メールの重複カウントを確認するために探しているなら、これを試してみてください。

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

個数は私のために働いていますが、何回複製したのか知る必要はありませんが、電子メールフィールドが一意であるすべてのフィールドを表示する結果テーブルを出力する必要があります。 – Beyerz

+0

うわー、その2番目のクエリは私が探していたものです!どういうわけか、私は 'group by 'がどのようにふるまうのかを決して消化しなかった。大変ありがとう@ニックヒル! –

0

素晴らしいザッツこの

select count(distinct email) 
from france_data 
order by email; 
関連する問題