select A.*
from (select name,count(*) count
from A
group by name) v,A
where v.name=A.name
and v.count=10;
对了,如何控制任意两个不用我教你了吧,在外面再套一层循环,用rownum控制<3就行咯。
如果表很大,最内层的group by 也可以换成分析函数的写法,效率可能高点
from (select name,count(*) count
from A
group by name) v,A
where v.name=A.name
and v.count=10;
对了,如何控制任意两个不用我教你了吧,在外面再套一层循环,用rownum控制<3就行咯。
如果表很大,最内层的group by 也可以换成分析函数的写法,效率可能高点
--------------------
钱二
丁一
张三
赵六
王五
李四
张三
王五已选择8行。已用时间: 00: 00: 00.00
SQL*PLUS>SELECT *
2 FROM (SELECT ROWNUM NUM FROM ALL_OBJECTS WHERE ROWNUM <= 5),
3 (SELECT *
4 FROM (SELECT ROWNUM NUM, NAME FROM TT ORDER BY DBMS_RANDOM.VALUE)
5 WHERE ROWNUM <= 2)
6 / NUM NUM NAME
---------- ---------- --------------------
1 2 丁一
2 2 丁一
3 2 丁一
4 2 丁一
5 2 丁一
1 1 钱二
2 1 钱二
3 1 钱二
4 1 钱二
5 1 钱二已选择10行。已用时间: 00: 00: 00.02
SQL*PLUS>