I have a dataset of INT, varchar. The ints can be grouped into small sets of 1 to 5, and I want to see the count of all the corresponding texts. E.g. input table (apols for format)
1,a
2,a
2,b
3,a
3,q
3,z
4,a
I can group by the Int, but have no idea how I can concat across rows. In the above i would want to know counts of:
a,2
ab,1
aqz,1
Can I do this purely in SQL, ideally in a generic db agnostic way?
Sybase supports the LIST()
function. So:
select chrs, count(*) as cnt
from (select t.number, list(t.chr, '' order by t.chr) as chrs
from t
group by t.number
) n
group by chrs
order by count(*) desc;