我有一个在给定列中包含名称的表。我需要知道有多少名字有1个字母,有多少有2个字母,有多少有3个字母等等多达20个字母,按另一列(出生年份)细分。
输出必须是这样的:
1900 1 3
1900 2 45
1900 3 453
1900 5 897
...
1900 20 2
1901 1 4
1902 2 23
..
1902 20 3
换句话说,对于1900年,3个人的名字长度为1-char。 45个人的名字长2个字符。 453个人的名字是3个字符长等。
我知道它会涉及length()和count,但不知道如何构造它。
答案 0 :(得分:1)
这是一个聚合查询,但具有聚合功能:
select YearBorn, length(name) as len, count(*) as cnt
from table t
group by YearBorn, length(name)
order by YearBorn, length(name);