改成这样吧
SELECT *
  FROM (SELECT   package_id, COUNT (tags) COUNT
            FROM package_items
           WHERE tags LIKE '%HTML%'
        GROUP BY package_id
        ORDER BY COUNT DESC)
 WHERE ROWNUM <= 3

解决方案 »

  1.   

    啊,写错了,应该是这样
    SELECT *
      FROM PACKAGE
     WHERE package_id IN (
                         SELECT *
                           FROM (SELECT   package_id
                                     FROM package_items
                                    WHERE tags LIKE '%HTML%'
                                 GROUP BY package_id
                                 ORDER BY COUNT (tags) DESC)
                          WHERE ROWNUM <= 3)
      

  2.   

    再晕,这样不是跟你第二句一样吗....你第一句不行的原因是 order by count(tags) desc在那个in子句里没有意义,oracle认为这样写是错的
      

  3.   

    select *
     from (
            select * 
             from package 
            where package_id in (
                                  select package_id 
                                   from (
                                          select package_id 
                                            from package_items 
                                          where tags like '%HTML%' 
                                          group by package_id 
                                          order by count(tags) desc
                                         )                     
                                 )
            ) 
    where rownum <=3
      

  4.   

    qiaozhiwei(乔)
    的办法可以考虑一下