gpt4 book ai didi

sql - 如何获取源数据中属于多个组的键值?

转载 作者:行者123 更新时间:2023-12-05 03:18:55 25 4
gpt4 key购买 nike

如何在我的源数据中获取属于多个组的 RM_ID 值?

我的表中有两列:RM_IDGroup,数据如下:

<表类="s-表"><头>RM_ID组<正文>100防御100防御200ABC200ABC200防御300XYZ300XYZ300ABC400PQR400PQR
  • 我想识别属于多个组的所有 RM_ID,并检索组的名称。

  • 我如何在 Oracle 中实现它?

    • LEAD/LAG 函数在这里有帮助吗?

期望的结果:

<表类="s-表"><头>RM_ID组<正文>200ABC200防御300XYZ300ABC

最佳答案

您可以分几步完成。我将使用一些 CTE 使其更清晰。

首先获取不同的值对,然后使用窗口函数计算每个 RM_ID 的组数,然后选择超过 1 组的记录。

WITH DISTINCT_PAIRS AS (
SELECT DISTINCT
RM_ID,
GROUP_
FROM YOUR_TABLE),

GROUP_COUNTER AS (
SELECT
RM_ID,
GROUP_,
COUNT(1) OVER (PARTITION BY RM_ID) AS NO_OF_UNIQUE_GROUPS
FROM DISTINCT_PAIRS
)

SELECT
RM_ID,
GROUP_
FROM GROUP_COUNTER
WHERE NO_OF_UNIQUE_GROUPS > 1

或者你可以这样做,稍微不那么冗长:

SELECT DISTINCT
RM_ID,
GROUP_
FROM YOUR_TABLE
WHERE RM_ID IN (
SELECT
RM_ID
FROM YOUR_TABLE
GROUP BY RM_ID
HAVING COUNT(DISTINCT GROUP_) > 1
)

关于sql - 如何获取源数据中属于多个组的键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73580025/

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