【发布时间】:2022-11-23 19:34:11
【问题描述】:
我需要一个查询来帮助我在同一个表中取出具有相同因子 id(X 列)和不同值(另一个 Y)的产品。例如,A、B、C 行的因子 12 应始终具有相同的值(X 列)。如果因子为 10,则值也会不同。
我尝试了一个查询,但只有当你加入 2 个表时才会得到结果
【问题讨论】:
-
请将示例输入和预期结果显示为表格,而不是仅对其进行描述。
我需要一个查询来帮助我在同一个表中取出具有相同因子 id(X 列)和不同值(另一个 Y)的产品。例如,A、B、C 行的因子 12 应始终具有相同的值(X 列)。如果因子为 10,则值也会不同。
我尝试了一个查询,但只有当你加入 2 个表时才会得到结果
【问题讨论】:
我需要一个查询来帮助我在同一个表中取出具有相同因子 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
【讨论】: