急,oracle如何取以下数据?求解答

img

Oracle如何取相同g不同w的多条数据,图中的b和d的数据

根据你的条件进行查询不就行了,使用枚举法

select * from 表名 where G in ('B','D');

group by G,W

搞不懂你的需求是什么,楼上的group by不对吗?只要多条的后面加个count(1)>1

我明白你的意思了,最简单的思路,宏观考虑:就是让group by G的次数>group by G,W的次数即可,代码如下:
select G from test1 A group by G having EXISTS
(SELECT 1 FROM test1 B WHERE A.G=B.G HAVING COUNT(A.G)>COUNT(B.G) AND COUNT(B.G)>1);
第二种思路:排除法,对GW进行分组,求出对应每组元素出现次数,然后让它作为一个表再对G进行分组,刷选出G每组至少要有两个元素以及每组中至少有一个元素次数出现1次以上:
select G from(SELECT G,COUNT(1) cishu FROM TEST1 GROUP BY G,W) t group by G having count(1)>1 and max(cishu)>1;
第三种思路 :增加一个分析函数的列,然后进行行列转换,再根据需求得到答案,会有点麻烦,你可以尝试一下。
如果对你有帮助请采纳,谢谢。