gpt4 book ai didi

sql - 简化的 SQL Min 语句

转载 作者:行者123 更新时间:2023-12-04 15:58:22 25 4
gpt4 key购买 nike

下面的 SQL 返回任何具有最小编号的记录,它应该可以正常工作:

SELECT Id, Number 
FROM TableA
WHERE Number = (select Min(Number) from TableA)

有没有办法我可以写一个 SQL 没有 sub Select 语句,但仍然返回相同的结果?

最佳答案

在 min(Number) 的情况下,OP 的查询将返回多行到目前为止给出的一些答案只会返回一行。

要使用 TOP 和 ORDER BY,需要包含 WITH TIES:

 select top 1 with ties id, number
from TableA
order by Number

如果使用带有窗口函数的 CTE 或内联 View ,则需要使用 RANK() 而不是 ROW_NUMBER():
 ; with CTE (R, ID, Number) as 
(select rank() over (order by Number)
, ID, Number
from TableA)
select ID, Number
from CTE
where R = 1

此外,请在用上述之一替换您的查询之前进行基准测试。对于我用来测试的一个非常小的表,OP 中的查询花费不到此答案中列出的 TOP WITH TIES 或 RANK() 版本的一半。

关于sql - 简化的 SQL Min 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1475041/

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