【发布时间】:2021-08-16 18:10:29
【问题描述】:
我想显示至少有一个指定驱动程序的计划数量,以便我可以计算出至少有 1 个驱动程序的保单的百分比。例如,可能有 2 个驱动程序,所以我只想看看那些至少有一个驱动程序的人。这是我开始的代码,我一直在思考如何让每个策略的计数显示为至少 1 个驱动程序。
SELECT
case when DRIVER_ROLE = 'Named driver' THEN 1 else null END as named_driver_ind
,DD.[DRIVER_ROLE]
,PD.[PLAN_NBR]
FROM DD
LEFT JOIN PD
on PD.DRIVE_PLAN_NBR = DD.DRIVE_PLAN_NBR
group by
DD.DRIVER_ROLE
,DD.[DRIVE_PLAN_NBR]
这里有一些示例数据。前 3 行是一个包含 3 个驱动程序的策略。他们有 2 名司机,所以这需要算作是的,他们至少有 1 名司机
| DD.driver_role| DD.Drive_Plan_NBR|DP.PLAN_NBR |DD.Driver_ID |
|:------------: |:---------------: | :-----------:|:-----------:|
| Named driver | 756 | 87397 | 123 |
| Policy holder | 756 | 87397 | 124 |
| Named driver | 756 | 87397 | 125 |
| Policy holder | 759 | 23211 | 188 |
预期结果是计划 nbr 的计数和具有至少 1 个驱动程序的最大计数
| count_Plan_nbr| Policies with at least 1 more driver||
|:------------: |:------------------------------------:|
| 2 | 1 |
【问题讨论】:
标签: mysql group-by aggregate-functions