2012-07-09 52 views
0

我們有一個有VehicleName列的車輛表。我正在研究一個用戶擁有相同車輛VehicleName的錯誤。我有這個查詢來幫助返回多次使用VehicleNames:SQL搜索具有相同名稱列的條目?

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

首先,它很慢。這並不算太壞,因爲這還沒有投入生產;這只是爲了幫助修復錯誤。其次,這將返回每個VehicleName,即使是那些有一個計數的那些,那些是我對這個應用程序不感興趣的VehicleNames。我不記得如何命名子查詢,所以我不能添加where來限制它。

我感興趣的不僅僅是如何命名子查詢,也是他們更快的解決方案呢?

回答

4

你是否試圖用一些醜陋的方式做到這一點?

SELECT VehicleName, COUNT(*) as TOTAL 
FROM Vehicles 
GROUP BY VehicleName 
HAVING TOTAL > 1 
ORDER BY TOTAL DESC; 
+0

我怎麼能忘記'Group By'?!?它現在幾乎立即運行。謝謝。 – 2012-07-09 14:42:23