如何仅通过某列的值的前几个字母对SQL查询进行分组?

时间:2014-08-01 19:30:54

标签: sql oracle count group-by

我正在使用Oracle sql开发人员。我有一个名为data的表格,其中一个标题为name的列。之前,我想按名称对项目进行分组并获得总计数,所以我这样做了:

select count(*), name from data group by name;

现在,我想将名称前四个字母共有的所有项目分组。例如,我想将名称等于Chris的所有行和名称等于Christine的所有行组合在一起。上面的查询中是否有编辑可以实现?

2 个答案:

答案 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;