【问题标题】:How to group SQL queries by only first few letters of a certain column's values?如何仅按某个列值的前几个字母对 SQL 查询进行分组?
【发布时间】:2014-08-01 19:30:53
【问题描述】:

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

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

现在,我想对名称前四个字母相同的所有项目进行分组。例如,我想将名称等于 Chris 的所有行和名称等于 Christine 的所有行组合在一起。上面的查询中是否有任何编辑可以使它成为可能?

【问题讨论】:

    标签: sql oracle count group-by


    【解决方案1】:

    只需使用substr() 函数:

    select substr(name, 1, 4) as name4, count(*)
    from data
    group by substr(name, 1, 4);
    

    【讨论】:

      【解决方案2】:

      获取相同结果的备用查询。

        SELECT name4, COUNT (*)
          FROM (SELECT SUBSTR (name, 1, 4) AS name4 FROM data)
      GROUP BY name4;
      

      【讨论】:

        猜你喜欢
        • 2013-07-06
        • 1970-01-01
        • 1970-01-01
        • 2012-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多