0

列のある車両テーブルがありVehicleNameます。ユーザーが同じの複数の車両を持っているバグを調べていますVehicleName。このクエリは、どのVehicleNameが複数回使用されたかを返すのに役立ちます。

SELECT VehicleName, 
 (
  SELECT count(VehicleName) 
  FROM Vehicles as V2 
  WHERE V1.VehicleName = V2.VehicleName
 )
FROM Vehicles as V1;

一つには、それは遅いです。これは本番環境に移行しないため、それほど悪くはありません。バグ修正を支援するだけです。次に、これはすべてを返しますVehicleName。カウントが1の場合でも、これらはこのアプリケーションに関心のないVehicleNamesです。サブクエリに名前を付ける方法を思い出せないため、を追加しwhereて制限することはできません。

サブクエリに名前を付ける方法だけでなく、これに対するより高速なソリューションにも興味がありますか?

4

1 に答える 1

4

あなたはこれを醜い方法でやろうとしていますか?

SELECT VehicleName, COUNT(*) as TOTAL
FROM Vehicles
GROUP BY VehicleName
HAVING TOTAL > 1
ORDER BY TOTAL DESC;
于 2012-07-09T14:36:06.803 に答える