你可以看到我想在这里做什么:
select *, count(*) as count
from `songs`
where `band` REGEXP '^[^[:alpha:]]'
group by `band`
order by `band` asc
乐队可以是:
avenged sevenfold
3 days grace
led zeppelin
98 mute
back street boys
beastie boys
我需要这个来选择第一个字符不是alpha的波段,并计算每个波段存在多少行。
不幸的是,我当前的查询似乎只将所有这些查询组合在一起,与REGEXP匹配。
答案 0 :(得分:1)
您不能选择不在group by子句中的列也不是组函数(count,max ...)
它没关系,因为你不需要对不需要的行进行分组,条件不超过组值(组函数的结果)。
ASC是默认的排序方式,因此您无需指定它。
select band, count(*) as count
from songs
where band REGEXP '^[^[:alpha:]]'
group by band
order by band
答案 1 :(得分:0)
在小组帮助后进行选择吗?
select `band`, count(*) as count
from `songs`
group by `band`
having `band` REGEXP '^[^[:alpha:]]'
order by `band` asc
此外,您似乎正在选择不在group子句中的列。尝试:
select `band`, count(*) as count
from `songs`
where `band` REGEXP '^[^[:alpha:]]'
group by `band`
order by `band` asc