gpt4 book ai didi

sql - 在 SELECT 和 ORDER BY 中,COUNT 是否执行两次?

转载 作者:行者123 更新时间:2023-12-05 02:25:07 24 4
gpt4 key购买 nike

我有一个这样的 SQL 查询:

SET @q =
(SELECT Id AS '@Id', COUNT(Occ) AS '@Occ' FROM Details
GROUP BY Id
ORDER BY COUNT(Occ) DESC, Id ASC
FOR XML PATH('Data'), ROOT('Stats'), ELEMENTS, TYPE)

我正在设置 AS @Id 和 AS @Occ 以便我的 FOR XML 指令将输出转换为属性而不是元素。

我的问题:在 SELECT 和 ORDER BY 中两次出现 COUNT(Occ) 是否会导致计数被执行两次,如果是这样,我该如何防止这种情况发生?

谢谢!

最佳答案

旧版本的 SQL 要求出现在 ORDER BY 子句中的任何表达式必须与 SELECT 子句中的列之一完全相同。这样就不必对表达式求值两次。只要您在两个地方都有完全相同的表达式,就不必执行两次。

事实上,您的排序可以写成 ORDER BY 2 DESC, 1,因为您可以只使用基于 1 的列号,而不必复制表达式。无论使用哪种方式,表达式都不应执行两次。

关于sql - 在 SELECT 和 ORDER BY 中,COUNT 是否执行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4357676/

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