gpt4 book ai didi

sql - 根据第一行中的值选择组中的第二行

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

假设我们在这里有一个表格,其中填充了以下数据:

acc_id1  acc_id2  acc_grp_id1  acc_parameter1  acc_parameter2
111 111111 115 1 155
111 111111 116 2 166
222 222222 216 2 167
222 222222 217 2 168
333 333333 316 3 155
334 333333 317 3 169
444 444444 416 4 151
445 444444 417 2 166

每个账户有多个acc_id,但参数代码是固定的。我试图只检索那些遵循此规则的帐户:如果最大的(最新的)acc_grp_id1 具有 param1 = 2 和 param2 = 166,则这两行都应该存在。如果最大(最新)参数等于不同的代码,则只填充最新的一个。

这是它的外观:
acc_id1  acc_id2  acc_grp_id1  acc_parameter1  acc_parameter2
111 111111 115 1 155
111 111111 116 2 166
222 222222 217 2 168
334 333333 317 3 169
444 444444 416 4 151
445 444444 417 2 166

实际输出是来自 5 个表的连接。

任何想法,将不胜感激。

最佳答案

试试这个(未测试):

WITH FullData AS
(
SELECT a.*,
ROW_NUMBER() OVER(PARTITION BY acc_id2 ORDER BY acc_grp_id1 DESC) AS Position
FROM <YOUR-TABLE> a
), FilteredData AS
(
SELECT *
FROM FullData
WHERE Position = 1
AND acc_parameter_1 = 2
AND acc_parameter_2 = 166
)
SELECT a.*
FROM FullData a LEFT JOIN FilteredData b
ON a.acc_id2 = b.acc_id2
WHERE (b.acc_id2 IS NULL AND a.Position = 1) -- Should be a.Position instead of b.Position
OR b.acc_id2 IS NOT NULL

关于sql - 根据第一行中的值选择组中的第二行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11353534/

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