2011-02-03 28 views
3

MySQLでの区別カウント(*)の取得方法。distinct count(*)

例えば、私は1000万のレコードを持っている、それに重複レコードがあります。

テーブルから個数(*)を調べたいと思います。

私が知っている、私は は、テーブルを作成し、同様にしても、他のテーブル内の個別のレコードを挿入したくない、私は千万レコードを取得したくない、TABLE1 から*明確な選択が、

を行うことができますtable2 select distinct * from table1

他のオプションで私を助けてください。誰も歓迎

答えて

4

から

ヘルプは、サブクエリを使用してみてください:

SELECT COUNT(*) FROM (SELECT DISTINCT * FROM table1) T1 
+0

私はサブクエリ意志の低迷@Krunal結果 – Krunal

+0

を使用して、表では10万件のレコードを持っている:あなたは確か*それは遅くなります*です!あなたはそれに対してどのような証拠を持っていますか?あなたも試してみましたか? –

+0

私は試しました。別のレコードを11256行から取得するには1.30分かかりました。テーブルには1000万レコードあります。 – Krunal

11
SELECT COUNT(DISTINCT field) FROM table 

または

SELECT COUNT(*) FROM table GROUP BY field; 

(ところで - これは、このサイト上の他の場所でかなりの数回に答えてきました)

0

たぶんのような:

SELECT SUM(cnt) FROM (SELECT COUNT(*) as cnt FROM tab GROUP BY some_value)