用于分组依据中的所有集合的SQL
假设我有桌上食物 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中有没有一种简单的方法可以做到这一点?试试以下方法:用于分组依据中的所有集合的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
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速度更快,但这很有效,并教会了我分区,谢谢!