使用Microsoft SQL Server 2008
需要针对以下方案的选择查询Order Customer Order_Type
1 A NULL
2 A NULL
3 B S
4 C NULL
5 D S
6 B NULL
7 D S
我想订购类型为S的客户订购,所以我期望的输出如下
Order Customer Order_Type
3 B S
6 B NULL
5 D S
7 D S
1 A NULL
2 A NULL
4 C NULL
订购类型' S'应该冒泡到顶部,但这些客户的订单仍然必须由客户和其他客户订购。这是我正在使用的查询
SELECT *
FROM CustomerOrder
ORDER BY COUNT(CASE WHEN Order_Type = 'S' THEN 1 END) OVER (PARTITION BY Customer) DESC,
Customer
但我得到的输出是
Order Customer Order_Type
5 D S
7 D S
3 B S
6 B NULL
1 A NULL
2 A NULL
4 C NULL
这是因为计数的顺序。