我确信有一种简单的方法可以做到这一点,但我一直在努力解决这个问题......
假设我有一个这样的订单表:
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将一个额外的列分组,显示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
答案 0 :(得分:4)
以列添加:
sum(case when OrderStatus = 'Available' then 1 else 0 end)