如何在SQL Server中获取满足多元批评的记录数?

时间:2017-12-21 12:49:33

标签: sql sql-server

我有一个带有以下列的sql表 OrderNo,GroupNum,ShipMethod,TrackingNo

我想找到同一个groupnum有多个'ShipMethod'的订单数量?

样本记录应该是:

Order123    1     DHL
Order123    2     DHL1
Order123    2     Fedex

然后我需要得到结果表明2或如果可能的输出如下:

OrderNumer  GroupNum    Count
----------  -------     -----
Order123      2         2 (Because 2 shipmethods)

2 个答案:

答案 0 :(得分:4)

按照您想要唯一的列进行分组,使用count()来计算每个群组,并使用having将输出限制为仅限相关群组

select ordernum, groupnum, count(*) as cnt
from your_table
group by ordernum, groupnum
having count(*) > 1

答案 1 :(得分:0)

如果我理解正确:

select OrderNumer, groupnum, count(*)
from t
group by OrderNumer, groupnum
having count(*) > 1;

如果您想要计算不同的值而不是行数,您可能还需要count(distinct shipmethod)