2013-05-22 14 views
42

値数:MySQLの私は3つの列を持っている場合はユニーク数が

orderNumber, name, email 

と私は私がそうすることについては行くだろうか、テーブルにあるどのように多くのユニークな電子メール数えたいですか?以下のような

声明:

SELECT count(email) FROM orders 

は私の合計数を提供します。

私はSELECT DISTINCT count(email) FROM orders

を試してみましたが、それは私が期待してい数字を与えていないようです。

+0

これはhttp://stackoverflow.com/questions/8264658/select-count-for-each-distinct-row-mysql-and-と非常によく似ています私は答えに感謝限り多くのPHP – Danexxtone

答えて

85

使用

SELECT count(DISTINCT(email)) FROM orders 

個別に一意の電子メールIDを提供して、単にそれらを数えます。あなたが使用する必要があります最高のパフォーマンスを得るために

+1

は、あなたがこれは私が自分自身の啓発のために何をやっていたと異なっている理由を説明するだろうか? – thatidiotguy

+1

その方法は、あなたが(重複を含む)最初にすべての電子メールをカウントして、明確な使用してフィルタリングしている「の受注は異なる数(電子メール)を選択し、」実行して、電子メールの数 –

+3

@thatidiotguyをdistinctingない、個別のメールをカウントしています。あなたは別の電子メールの総数ではなく、電子メールの総数を受け取るでしょう。 –

7
SELECT count(DISTINCT(email)) FROM orders 

そのあなたの投稿は異なるが、カウント前にそのフィルタうち重複するので、それは

0

SELECT 
sub.email, 
count(1) as 'count_unique' 
FROM 
(SELECT email FROM orders GROUP by email) sub 
関連する問題