我们有一张车辆表格,其中包含VehicleName
列。我正在研究一个用户有多辆同一VehicleName
车辆的错误。我有这个查询来帮助返回多次使用的VehicleNames:
SELECT VehicleName,
(
SELECT count(VehicleName)
FROM Vehicles as V2
WHERE V1.VehicleName = V2.VehicleName
)
FROM Vehicles as V1;
首先,它很慢。这不是太糟糕,因为这不会投入生产;它只是为了帮助修复bug。其次,这将返回每个VehicleName
,即使是计数为1的那些,这些是我对此应用程序不感兴趣的VehicleNames。我不记得如何命名子查询,因此我无法添加where
来限制它。
我不仅对如何命名子查询感兴趣,而且还有更快的解决方案吗?
答案 0 :(得分:4)
你是否试图以某种丑陋的方式做到这一点?
SELECT VehicleName, COUNT(*) as TOTAL
FROM Vehicles
GROUP BY VehicleName
HAVING TOTAL > 1
ORDER BY TOTAL DESC;