2
SELECT COUNT(organization.ID) 
FROM organization 
WHERE name in ( SELECT name FROM organization GROUP BY name HAVING count( name ) >1 )
AND organization.APPROVED=0 
AND organization.CREATED_AT>'2010-07-30 10:30:21'

重複を見つけようとしていますが、このクエリには約 5 ~ 6 秒の非常に長い時間がかかります。メソッドを使用せずに重複を見つける別の方法はありますか? ありがとう。

サブクエリ: 0.28 秒。すべて5.98秒。

4

3 に答える 3

1
SELECT organization.name, COUNT(organization.ID)
  FROM organization
 WHERE organization.APPROVED=0
   AND organization.CREATED_AT>'2010-07-30 10:30:21'
 GROUP BY name
HAVING count(organization.id) > 1;
于 2012-07-30T14:24:17.260 に答える
0

WHERE句でクエリを使用する必要はありません。GROUP BYこれを行うには、HAVING句を使用できます。

SELECT COUNT(o.ID) 
FROM organization o
WHERE o.APPROVED=0 
   AND o.CREATED_AT>'2010-07-30 10:30:21'
GROUP BY o.Name
HAVING COUNT(o.name) > 1
于 2012-07-30T14:25:33.547 に答える
0

なぜそれを次のようにしないのですか:

SELECT COUNT(organization.ID)
FROM organization 
WHERE organization.APPROVED=0 
AND organization.CREATED_AT>'2010-07-30 10:30:21'
GROUP BY organization.name
HAVING count(organization.name) > 1;
于 2012-07-30T14:25:37.527 に答える