如果我有下表:
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'
有没有办法在没有联合的情况下进行此查询?
要明确:我希望表 OR 中包含三个以上条目的所有名称都回答类似条款'%xyz'
。
答案 0 :(得分:1)
以下查询只会在分组之前获取与like子句匹配的名称:
SELECT name,count(*) as num FROM my_table GROUP BY name HAVING num > 3 OR name like '%xyz'
编辑:上述查询已被更改为允许使用name或num子句来接受行。
答案 1 :(得分:0)
select name,count(*) as num
from my_table
group by name having num>3
where name like '%xyz'
答案 2 :(得分:0)
联合仅在链接两个表时使用。
我认为你在找这样的东西?
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的问题。