Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于分组依据中的所有集合的SQL_Sql_Oracle - Fatal编程技术网

用于分组依据中的所有集合的SQL

用于分组依据中的所有集合的SQL,sql,oracle,Sql,Oracle,假设我有桌上食物 A B C ============== 1 1 1 1 2 3 1 2 4 1 3 6 2 2 6 我希望结果是 all(C) === 3 4 全部(C) === 3. 4. 在Oracle SQL中有没有一种简单的方法可以做到这一点?试试以下方法: SELECT C FROM (select C, COUNT(*) OVER(PARTITION BY A, B) AS DUP

假设我有桌上食物

A B C ============== 1 1 1 1 2 3 1 2 4 1 3 6 2 2 6 我希望结果是

all(C) === 3 4 全部(C) === 3. 4. 在Oracle SQL中有没有一种简单的方法可以做到这一点?

试试以下方法:

SELECT C
FROM
(select C, COUNT(*) OVER(PARTITION BY A, B) AS DUPLICATES
from MY_TABLE) AS RESULTS
WHERE DUPLICATES > 1
试试这个:

SELECT C
FROM
(select C, COUNT(*) OVER(PARTITION BY A, B) AS DUPLICATES
from MY_TABLE) AS RESULTS
WHERE DUPLICATES > 1

我想出来了。我曾经

select f.c from foo f
join (select a, b from foo group by a, b having count(c) > 1) dupes
on dupes.a = f.a and dupes.b = f.b;

我想出来了。我曾经

select f.c from foo f
join (select a, b from foo group by a, b having count(c) > 1) dupes
on dupes.a = f.a and dupes.b = f.b;
应该给你想要的。更有效的一点可能是使用分析函数

SELECT c
  FROM (SELECT f.*,
               count(*) over (partition by a, b) cnt
          FROM foo f)
 WHERE cnt > 1
应该给你想要的。更有效的一点可能是使用分析函数

SELECT c
  FROM (SELECT f.*,
               count(*) over (partition by a, b) cnt
          FROM foo f)
 WHERE cnt > 1

A!=B、 我想知道有AB tuplesA重复行的地方!=B、 我想知道哪里有AB元组的重复行。从我的回答中,你看到我的sql有什么问题吗?我的sql得到的结果比我想象的结果多一倍多一点。不过,我的sql中有一个额外的where子句。出于某种原因,我提出的sql速度更快,但这很有效,并教会了我分区,谢谢!从我的回答中,你看到我的sql有什么问题吗?我用你的sql得到的结果比我想象的结果多一倍多一点?别担心,我还有一个额外的where子句。出于某种原因,我提出的sql速度更快,但这很有效,并教会了我分区,谢谢!