【问题标题】:Query to find out same product Factor id with different values查询以找出具有不同值的相同产品因子 id
【发布时间】:2022-11-23 19:34:11
【问题描述】:

我需要一个查询来帮助我在同一个表中取出具有相同因子 id(X 列)和不同值(另一个 Y)的产品。例如,A、B、C 行的因子 12 应始终具有相同的值(X 列)。如果因子为 10,则值也会不同。

我尝试了一个查询,但只有当你加入 2 个表时才会得到结果

【问题讨论】:

  • 请将示例输入和预期结果显示为表格,而不是仅对其进行描述。

标签: sql oracle


【解决方案1】:

我需要一个查询来帮助我在同一个表中取出具有相同因子 id(X 列)和不同值(另一个 Y)的产品。

您可以使用分析函数为每个COUNTCOUNTDISTINCTy值,然后在外部查询中过滤以仅显示具有多个y值的行:

SELECT x, y
FROM   (
  SELECT x,
         y,
         COUNT(DISTINCT y) OVER (PARTITION BY x) AS num_y
  FROM   table_name
)
WHERE  num_y > 1;

其中,对于示例数据:

CREATE TABLE table_name (x, y) AS
SELECT 12, 'A' FROM DUAL UNION ALL
SELECT 12, 'B' FROM DUAL UNION ALL
SELECT 12, 'C' FROM DUAL UNION ALL
SELECT 10, 'D' FROM DUAL UNION ALL
SELECT 10, 'D' FROM DUAL;

输出:

X Y
12 A
12 B
12 C

fiddle

【讨论】:

    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2016-05-21
    • 2019-05-10
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多