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 也可以换成分析函数的写法,效率可能高点

解决方案 »

  1.   

    SQL*PLUS>select * from tt;NAME
    --------------------
    钱二
    丁一
    张三
    赵六
    王五
    李四
    张三
    王五已选择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>