我正在使用Oracle sql开发人员。我有一个名为data
的表格,其中一个标题为name
的列。之前,我想按名称对项目进行分组并获得总计数,所以我这样做了:
select count(*), name from data group by name;
现在,我想将名称前四个字母共有的所有项目分组。例如,我想将名称等于Chris的所有行和名称等于Christine的所有行组合在一起。上面的查询中是否有编辑可以实现?
答案 0 :(得分:5)
只需使用substr()
功能:
select substr(name, 1, 4) as name4, count(*)
from data
group by substr(name, 1, 4);
答案 1 :(得分:0)
可以获取相同结果的备用查询。
SELECT name4, COUNT (*)
FROM (SELECT SUBSTR (name, 1, 4) AS name4 FROM data)
GROUP BY name4;