Jag skulle vilja slå ihop dessa till en, men får inte till det.
select a
from t
where a like('wis%')
group by a
having count(*) > 2
select b
from t
where b like('new%')
group by b
having count(*) > 2
5 svar · 364 visningar · startad av Jesper T
Jag skulle vilja slå ihop dessa till en, men får inte till det.
select a
from t
where a like('wis%')
group by a
having count(*) > 2
select b
from t
where b like('new%')
group by b
having count(*) > 2
Det beror som sig på vad du vill ha för resultat. Rita och berätta lite mer med exempel på datainnehåll och förväntat resultat.
Tjo, båda frågorna rör samma tabell.
Men jag kom på att en union gjorde susen. Jag ville presentera resultatet ifrån två kolumner i en och samma nämligen.
/r
Men jag får trubbel om jag vill plussa ihop "count" ifrån båda selecterna.
Om samma ord existerar i båda kolumerna så skrivs båda ut.
select a, count(*)
from t
where a like('Ap%')
group by a
having count(*) > 2
union
select b, count(*)
from t
where b like('B%')
group by b
having count(*) > 2
Det verkar ju inte funka att ha agregatfunktionen i group by.
Utan Count:
Apa
Bil
Båt
Med count:
Apa 4
Bil 32
Bil 3
Båt 6
Önskat resultat:
Apa 4
Bil 35
Båt 6
Tips här?
select a, sum(c)
from (
select a,count(*) c
from t
where a like 'Ap%'
group by a
having count(*) > 2
union all
select b, count(*)
from t
where b like 'B%'
group by b
having count(*) > 2) dt
group by a
Härligt, kompis!