gpt4 book ai didi

sql - 在表中查找距离给定值最远的值

转载 作者:行者123 更新时间:2023-12-04 13:51:50 25 4
gpt4 key购买 nike

我需要从 SQL Server 2008 R2 表中查询数据。

表格:

 id    value
1 0.63
1 0.96
5 1.15
5 1.2

我需要一个 id 唯一的表,每个 id 的值与 1 的距离最大。示例:

 id    value
1 0.63 // it far from 1 than 0.96
5 1.2 // it is far from 1 than 1.15

我知道如何通过创建一个表格来逐一检查每个 ID 的值来做到这一点。我需要用一个查询来完成。

select distinct id value 
from table
group by id, max(abs(value -1))

谢谢!

最佳答案

一种方法使用row_number():

select id, value
from (select t.*, row_number() over (partition by id order by abs(value - 1)) as seqnum
from t
where seqnum = 1;

可以将其作为聚合来执行,但计算有点违反直觉:

select id,
(case when max(abs(value - 1)) = max(value - 1) then max(value)
else min(value)
end) as value
from table t
group by id;

极值是最大值或最小值。您可以通过查看最大值的“符号”来确定这一点。

关于sql - 在表中查找距离给定值最远的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35160008/

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