gpt4 book ai didi

具有附加条件的 SQL MAX(列)

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

我有一个表,我想在其中返回由另一个标识符组成的 MAX(id) GROUP 列表。然而,我有第三列,当它满足特定条件时,“胜过”不符合该条件的行。

用一个例子可能更容易解释。示例表有:

唯一标识符(整数)GroupId(整数)IsPriority(位)

原始数据:

UniqueId    GroupId    IsPriority
-----------------------------------
1 1 F
2 1 F
3 1 F
4 1 F
5 1 F
6 2 T
7 2 T
8 2 F
9 2 F
10 2 F

因此,因为 groupId 1 中没有行设置了 IsPriority,所以我们返回最高的 UniqueId (5)。由于 groupId 2 具有设置了 IsPriority 的行,因此我们返回具有该值 (7) 的最高 UniqueId。

所以输出将是:

5
7

我可以想出暴力破解的方法,但我想看看我是否可以在单个查询中做到这一点。

最佳答案

SQL Fiddle Demo

WITH T
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY GroupId
ORDER BY IsPriority DESC, UniqueId DESC ) AS RN
FROM YourTable)
SELECT UniqueId,
GroupId,
IsPriority
FROM T
WHERE RN = 1

关于具有附加条件的 SQL MAX(列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162249/

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