gpt4 book ai didi

sql-server - 使用分组依据计算总行数

转载 作者:行者123 更新时间:2023-12-02 17:21:28 24 4
gpt4 key购买 nike

我有以下查询:

select  count(ords.TRACKING_NUM)
from Orders ords (NoLock)
group by ords.TRACKING_NUM
having count(distinct ords.ORDER_NUM) = 4

我希望它检索包含 4 个 ORDER_NUM 的 TRACKING_NUM 总数(应为 3,352)。相反,我得到了 3,352 行,等于 4(或更多,因为不同)。

我明白为什么会发生这种情况。它正在计算每个组内的值。我可以轻松地将查询更改为:

select  ords.TRACKING_NUM
from Orders ords (NoLock)
group by ords.TRACKING_NUM
having count(distinct ords.ORDER_NUM) = 4

然后它返回了 3,352 行 TRACKING_NUMs 给我。然而,这对我的数据库来说性能不是很好(大约需要 41 秒)。我真正需要的是一个查询,它将给我一个计数,并且仅一个计数(并且通过这样做希望速度更快)。

感谢您的任何建议。

最佳答案

SELECT COUNT(*)
FROM (
SELECT TRACKING_NUM
FROM Orders
GROUP BY TRACKING_NUM
HAVING count(distinct ORDER_NUM) = 4) AS Agg

关于sql-server - 使用分组依据计算总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com