【问题标题】:Group by and Pivot functions giving different countsGroup by 和 Pivot 函数给出不同的计数
【发布时间】:2019-09-03 11:23:53
【问题描述】:

Group by 和 Pivot 操作给出不同的计数。

我使用 Group by 来获取 City 的车辆数量,并使用 Pivot 来获取 Make 的车辆数量。

SELECT MAKE, [AMB],[BNG],[CBE],[GBM],[KKE],[OMR],[PDR]
FROM
(
SELECT MAKE, BRANCH, COUNT(DISTINCT [VEH NO]) [VEHICLE COUNT]
FROM MAKE_MODEL_DESCRIPTION
GROUP BY MAKE, BRANCH
) X
PIVOT
(
    SUM([VEHICLE COUNT]) FOR BRANCH IN ([AMB],[BNG],[CBE],[GBM],[KKE], 
[OMR],[PDR])
) AS PVT

我得到的上述 Pivot 查询的总数是 150。

select BRANCH, COUNT(distinct [VEH NO])
from MAKE_MODEL_DESCRIPTION
group by BRANCH

我得到的上述 GROUP BY 查询的总数是 140。

鉴于它们来自相同的数据源,它们不应该是相同的数字吗? 谁能告诉我哪里出错了。

【问题讨论】:

    标签: sql sql-server group-by pivot


    【解决方案1】:

    不,您不应期望计数相同。 GROUP BY 将不同的车辆计算在所有 品牌中。 PIVOT 仅在单个分支和模型中计算不同的车辆。

    换句话说,同一辆车可能在不同的分支。

    如果包含品牌,那么数字应该相同:

    select MAKE, BRANCH, COUNT(distinct [VEH NO])
    from MAKE_MODEL_DESCRIPTION
    group by MAKE, BRANCH
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 2019-02-20
      相关资源
      最近更新 更多