sql查询使用分组按怎么办

sql查询使用分组按怎么办,sql,Sql,我有一个带有以下值的表详细信息 **id name locale code** 1 Zen GR 101 2 Ryan IN 105 3 Rico GR 101 4 Susan GR 101 5 Tom AU 106 6 John AU 107 7 Lis AU

我有一个带有以下值的表详细信息

**id     name   locale    code**
   1     Zen    GR        101
   2     Ryan   IN        105
   3     Rico   GR        101
   4     Susan  GR        101
   5     Tom    AU        106
   6     John   AU        107
   7     Lis    AU        107
我需要选择所有代码计数大于2的行。并尝试使用此查询

select *
from Details
group by code
having count(code)>2
返回结果:

1     Zen    GR        101
6     John   AU        107
但我想要这个:

   1     Zen    GR        101
   3     Rico   GR        101
   4     Susan  GR        101
   6     John   AU        107
   7     Lis    AU        107
请帮我做这个
谢谢

一种通用的SQL方法是在操作符中使用

select *
from Details d
where d.code in (select code
                 from Details
                 group by code
                 having count(code) > 2
                ) ;
根据数据库的不同,还有其他的编写方法(在特定的数据库中,有些方法的执行速度可能比这快)

编辑:

在许多数据库中执行此操作的一个好方法是使用窗口/分析函数:

select id, name, locale, code
from (select d.*, count(*) over (partition by code) as codecnt
      from details d
     ) d
where codecnt > 1;

您使用的是什么数据库?谢谢您的快速回复。。我会选择选项1。