gpt4 book ai didi

sql - 消除具有相反值的行

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

例如,我想消除具有相反值的行
我的表中有以下几行

id     value1  value2  value3
---- ------ ------ -------
10 -1 -20 -48.5
10 1 20 48.5
10 -1 -30 -26.2
10 1 30 26.2
10 1 27 30.5

我想得到的是
id     value1  value2  value3
---- ------ ------ -------
10 1 27 30.5

任何建议将不胜感激。

最佳答案

我正在返回正数。然后我将所有字段分组,只返回单行字段。您可以使用 MINMAX在选择。两者都会返回正确的结果。

DECLARE @Tbl TABLE (id INT, value1 INT, value2 INT, value3 FLOAT)

INSERT INTO @Tbl
VALUES
(10, -1, -20, -48.5),
(10, 1, 20, 48.5),
(10, -1, -30, -26.2),
(10, 1, 30, 26.2),
(10, 1, 27, 30.5)


SELECT
T.id ,
MIN(T.value1) ,
MIN(T.value2),
MIN(T.value3)
FROM
@Tbl T
GROUP BY
T.id ,
ABS(T.value1) ,
ABS(T.value2),
ABS(T.value3) HAVING COUNT(1) = 1

结果:
id  value1  value2  value3
10 1 27 30.5

我建议你在更大的数据上测试它。您可能会遇到性能问题。

关于sql - 消除具有相反值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40681647/

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