Sql 如何获取数据库行中字符串的唯一长度计数?

Sql 如何获取数据库行中字符串的唯一长度计数?,sql,oracle,Sql,Oracle,我正在使用Oracle,我有一个包含1000行的表。有一个姓氏字段和 我想知道名称字段的长度,但我不想让它用于每一行。我要数一数各种长度 例如: 姓氏: smith smith Johnson Johnson Jackson Baggins 有两个史密斯,长五英尺。其他四个,长度为七。我希望我的查询返回 7 5 如果有1000个名字,我希望得到各种长度 我试过了 Select count(*) as total, lastname from myNames group by total 它

我正在使用Oracle,我有一个包含1000行的表。有一个姓氏字段和

我想知道名称字段的长度,但我不想让它用于每一行。我要数一数各种长度

例如:

姓氏:

smith
smith
Johnson
Johnson
Jackson
Baggins
有两个史密斯,长五英尺。其他四个,长度为七。我希望我的查询返回

7
5
如果有1000个名字,我希望得到各种长度

我试过了

Select count(*) as total, lastname from myNames group by total
它不知道总数是多少。按姓氏分组只是对每个名字进行分组,除非它是不同的姓氏,这是预期的,但不是我需要的

这可以在一个SQL查询中完成吗

SELECT Length(lastname)
FROM MyTable
GROUP BY Length(lastname)

这将适用于单个列中的不同长度。

我想他想要具有相同长度的lastnames的数量,因此可能需要在查询中添加一个
count(*)
字段。这不起作用(但谢谢)。这只会让我计算1000个,然后是一个长度,一个返回行。我知道我有各种各样的长度。让我哑口无言。我必须在它周围使用trim,否则我将返回所有相同的记录。您确定不需要不同的长度及其计数,例如
7 | 4 5 | 2
?它只返回一行。也许我需要再次检查我的数据。
select distinct(LENGTH(lastname)) from mynames;
Select count(*), Length(column_name) from table_name group by Length(column_name);