在 where 子句中使用 having

using having in where clause

如果我有以下table:

my_table:    
  varchar name
  int     score

我想执行以下查询:

select name from my_table group by name having count(*)>3
union
select name from my_table where name like '%xyz'

有没有没有联合的方法来执行这个查询?

明确一点:我希望所有在 table 中具有三个以上条目的名称都回答 like 从句 '%xyz'

select name,count(*) as num 
from my_table 
group by name having num>3
where name like '%xyz'

联合仅在链接两个表时使用。

我想你正在寻找这样的东西?

SELECT name,count(*) as num 
FROM my_table 
GROUP BY name 
HAVING num > 3 OR name like '%xyz'

http://sqlfiddle.com/#!9/1b6a0/2/0

阅读预期结果后编辑以匹配 OP 的问题。

下面的查询只会在分组前抓取与 like 子句匹配的名称:

SELECT name,count(*) as num FROM my_table GROUP BY name HAVING num > 3 OR name like '%xyz'

编辑: 上述查询已更改为允许 name 或 num 子句导致行被接受。