sql - 如何仅按特定列值的前几个字母对 SQL 查询进行分组?

标签 sql oracle count group-by

我正在使用 Oracle sql Developer。我有一个名为 data 的表,其中标题为 name 的列之一。早些时候,我想按名称对项目进行分组并获取总数,所以我这样做了:

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

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

最佳答案

只需使用substr()函数:

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

关于sql - 如何仅按特定列值的前几个字母对 SQL 查询进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25087385/

相关文章:

sql - 一张有 100 列的大表 vs 很多小表

sql - 在 Postgresql 中将重复项组合在一起

java - 获取我在 Spring/Java/Oracle 中更新的行的有效方法

php - 需要有关变量 COUNT 查询的帮助

search - 计算文件中某个模式的出现次数(即使在同一行)

mysql - 完全连接两个不同的 SELECT 查询

sql - 多部分标识符无法绑定(bind)sql

c# - Crystal 报表和 ODP.Net

oracle - 将 BLOB(图像)从 oracle 导入到 hive

python - SqlAlchemy 左连接计数