我做了3个表格,问题是我正在计算表格中的板块数量,并将其与特定策略进行比较。如何计算重复的列?
TABLES
|vehicles|
|id| |plate|
1 VEH001
2 VEH002
3 VEH003
4 VEH004
5 VEH001
6 VEH002
|policy_vehicles|
|id| |vehicle_id| |policy_id|
1 1 1
2 2 1
3 3 1
4 4 2
5 6 3
|policies|
|id| |description|
1 POL1
2 POL2
3 POL3
欲当板名称上重复在这种情况下“VEH001”“数据库”进行计数,重复1次在桌子上的车辆从policy_id = 1
例如policy_id = 1
Policy: POL1
Has 3 policy_vehicles
Has 3 plates (VEH001, VEH002, VEH003)
VEH001 and VEH002 are repeated in the DB = 2 plates repeated
我试图显示此为r esult
REPEATED
2
又如计数时,不重复关于在这种情况下“VEH004”“数据库”板名不重复对表车辆从policy_id = 2
例如policy_id = 2
Policy: POL2
Has 1 policy_vehicles
Has 1 plates (VEH002)
VEH002 is repeated in the DB = 1 plate repeated
我想表明这是结果
REPEATED
0
又如计数时板名称上重复在这种情况下“VEH002”“数据库”被重复在桌子上的车辆从policy_id = 3
例如policy_id = 3
Policy: POL3
Has 1 policy_vehicles
Has 1 plates (VEH004)
VEH004 is not repeated
我“M试图证明这是结果
REPEATED
1
Select count(*) FROM (
SELECT count(*), v.plate
FROM vehicles v
LEFT JOIN policy_vehicles pv ON v.id = pv.vehicle_id
and pv.policy_id = 2
GROUP by v.plate
HAVING count(*) > 1) A
请有人可以帮助我吗?
您的预期结果没有意义。车辆1和车辆4不属于同一政策,车辆5不属于任何车辆。我不知道你怎么能说他们重复? – AdamMc331