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)
我确定有一种简单的方法可以做到这一点,但我一直在努力解决这个问题...
假设我有一个订单 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)