Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为ColumnB中的每个唯一值计算ColumnA中的不同值_Sql_Sql Server - Fatal编程技术网

Sql 为ColumnB中的每个唯一值计算ColumnA中的不同值

Sql 为ColumnB中的每个唯一值计算ColumnA中的不同值,sql,sql-server,Sql,Sql Server,我有一个装运编号表(可以重复)和一个连接的起始-目的地字段(可以重复)。我有一个select列,它为每个装运编号选择所有的始发地目的地。我想添加第三列,用于获取每个唯一装运编号的唯一原产地目的地的数量 我试着做了一个实验 Select [OD], [ShipmentNo], [UniqueODs] = (COUNT([OD])) 也试过了 Select [OD], [ShipmentNo], [UniqueODs] =(COUNT([ShipmentNo]) 而不是[OD]。在我的附加

我有一个装运编号表(可以重复)和一个连接的起始-目的地字段(可以重复)。我有一个select列,它为每个装运编号选择所有的始发地目的地。我想添加第三列,用于获取每个唯一装运编号的唯一原产地目的地的数量

我试着做了一个实验

Select [OD], [ShipmentNo], [UniqueODs] = (COUNT([OD])) 
也试过了

 Select [OD], [ShipmentNo], [UniqueODs] =(COUNT([ShipmentNo]) 
而不是[OD]。在我的附加列中,所有内容都返回1

 SELECT     [OD],
            [ShipmentNo],
            [UniqueODs] = (COUNT([OD]))


             FROM tblShipments

             GROUP BY MVMT_NO, [OD Pair]

             ORDER BY MVMT_NO, [OD Pair]
预期结果:

[Origin-Destination]                [ShipmentNo]             [UniqueODs]
Michigan-California                 A484310                  1
Michigan-California                 A484311                  1
Texas-California                    A484312                  2
Michigan-California                 A484312                  2
[OD]                    [ShipmentNo]              [UniqueODsForSN]
Michigan-California     A484310                   1
Michigan-California     A484311                   1
Texas-California        A484312                   2
Michigan-California     A484312                   2
目前的结果:

[Origin-Destination]                [ShipmentNo]             [UniqueODs]
Michigan-California                 A484310                  1
Michigan-California                 A484311                  1
Texas-California                    A484312                  1
Michigan-California                 A484312                  1
我希望两行上A484312的输出都是2,而不是1

预期结果:

[Origin-Destination]                [ShipmentNo]             [UniqueODs]
Michigan-California                 A484310                  1
Michigan-California                 A484311                  1
Texas-California                    A484312                  2
Michigan-California                 A484312                  2
[OD]                    [ShipmentNo]              [UniqueODsForSN]
Michigan-California     A484310                   1
Michigan-California     A484311                   1
Texas-California        A484312                   2
Michigan-California     A484312                   2

我想您需要一个窗口功能:

SELECT OD, ShipmentNo, SUM(COUNT(*)) OVER (PARTITION BY ShipmentNo) as UniqueODs
FROM tblShipments
GROUP BY MVMT_NO, [OD Pair]
ORDER BY MVMT_NO, [OD Pair];
嗯。如果当前计数为
1
,则不需要聚合:

SELECT OD, ShipmentNo, COUNT(*) OVER (PARTITION BY ShipmentNo) as UniqueODs
FROM tblShipments
ORDER BY MVMT_NO, [OD Pair];
编辑:

如果你真的想要:

SELECT OD, ShipmentNo, COUNT(*) OVER (PARTITION BY ShipmentNo) as UniqueODs
FROM tblShipments
GROUP BY MVMT_NO, [OD Pair]
ORDER BY MVMT_NO, [OD Pair];

我想您需要一个窗口功能:

SELECT OD, ShipmentNo, SUM(COUNT(*)) OVER (PARTITION BY ShipmentNo) as UniqueODs
FROM tblShipments
GROUP BY MVMT_NO, [OD Pair]
ORDER BY MVMT_NO, [OD Pair];
嗯。如果当前计数为
1
,则不需要聚合:

SELECT OD, ShipmentNo, COUNT(*) OVER (PARTITION BY ShipmentNo) as UniqueODs
FROM tblShipments
ORDER BY MVMT_NO, [OD Pair];
编辑:

如果你真的想要:

SELECT OD, ShipmentNo, COUNT(*) OVER (PARTITION BY ShipmentNo) as UniqueODs
FROM tblShipments
GROUP BY MVMT_NO, [OD Pair]
ORDER BY MVMT_NO, [OD Pair];

您应该提供一个要处理的示例数据。您应该提供一个要处理的示例数据。到此为止。它确实得到了ShipmentNo的ODs数量,但没有得到ShipmentNo的唯一*ODs数量。有什么想法吗?@NthngLeftToBurn。您问题中的示例数据不包含任何重复项。但请查看最后一次编辑。这已接近尾声。它确实得到了ShipmentNo的ODs数量,但没有得到ShipmentNo的唯一*ODs数量。有什么想法吗?@NthngLeftToBurn。您问题中的示例数据不包含任何重复项。但请查看最后一次编辑。