SQL 同一查询中的服务器多个计数

SQL Server Multiple Counts in the same Query

我确定有一种简单的方法可以做到这一点,但我一直在努力解决这个问题...

假设我有一个订单 table 像这样:

OrderId   OrderStatus   DriverId  TripId
-------   -----------   ------    ----
 1         Available     5         2
 2         Available     5         2
 3         Available     5         2
 4         Delivered     5         2
 5         Delivered     5         3
 6         Delivered     6         2

我想按每个 Driver 和 Trip 进行分组,并在其等于 'Available' 时用一个额外的列显示 OrderStatus 的计数。所以,例如

TotalOrderCountInTrip   DriverId   TripId  AvailableOrdersCount
---------------------   --------   ------  --------------------
 4                       5          2       3
 1                       6          2       0

我已经讲到这里了,但我不知道如何添加 AvailableOrdersCount 列:

select count(*) TotalOrderCountInTrip, dos.DriverId, dos.TripId
from DriverOrderSet dos (nolock)
group by
   dos.DriverId,
   dos.TripId

添加为列:

sum(case when OrderStatus = 'Available' then 1 else 0 end)