道歉如果标题没有充分理解,我会尽力解释。
我有一个包含车辆信息的表格,有很多重复项,总共约5000行。这是一个片段作为例子:
正如您所看到的,“TI TI TBI”型号重复两次,这实际上意味着伦敦有两辆车存放。
我正在寻找类似下面的内容,其中计算特定位置的特定车辆重复的次数,以及删除重复项,以便每个车辆仅针对每个位置出现一次。
我能够为特定的车辆和位置做一个相当简单的选择命令,例如
SELECT COUNT(model), model, loc_name, vehicle_type
FROM vehicles
WHERE loc_name='London' AND model='159 TI TBI'
GROUP BY model, loc_name, vehicle_type
问题在于我会在特定位置为车辆模型的每个组合重复此命令,但效率不高。
希望这是有道理的,我没有大量的SQL经验,所以如果有任何严重错误,请道歉。感谢。
答案 0 :(得分:1)
此查询将为您提供所需的结果
{{1}}
答案 1 :(得分:1)
你的问题有点不清楚。但是,让我试试吧。您似乎想要获得每个组的计数,您必须在where子句中为每个车辆重新查询。但是,聚合将允许您获得所有车辆的计数。如果你只是在寻找模型,位置,唯一类型和出现次数,你有正确的查询,只需删除你的where子句,SQL的强大功能将为你处理它。
SELECT COUNT(*) as quantity, model, loc_name, vehicle_type
FROM vehicles
GROUP BY model, loc_name, vehicle_type
答案 2 :(得分:0)
如果您只想要多出一次出现的行,则可以使用过滤聚合结果
SELECT COUNT(*) as quantity, model, loc_name, vehicle_type
FROM vehicles
GROUP BY model, loc_name, vehicle_type
having count(*) > 1