sql - 如何按字符串的一部分进行选择和分组?

标签 sql postgresql string group-by grouping

假设我有如下数据,我该如何选择和分组字符串的一部分?

Version  Users
1.1.1    1
1.1.23   3
1.1.45   1
2.1.24   3
2.1.12   1
2.1.45   3
3.1.10   1
3.1.23   3

我想要的是总结使用 1.1.x、2.2.x 和 3.3.x 等版本的用户,但我不确定如何在 select 语句中对部分字符串进行分组。

编辑 返回的数据应该是这样的:

Version  Users
1.1.XX   5
2.1.XX   7
3.1.XX   4

有无限多的版本,有些是这种格式(主要,次要,构建)有些只是主要,次要,有些只是主要,我唯一想“汇总”版本的时间是有一个构建。

最佳答案

select rtrim(Version, '0123456789') ||'XX', sum(users) 
from Table
group by rtrim(Version, '0123456789')

关于sql - 如何按字符串的一部分进行选择和分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2906950/

相关文章:

postgresql - 是否可以使用 CHECK 约束来测试 jsonb 数组中的对象?

ruby - 准备好的语句已经存在

string - EXCEL VBA : extracting 8 digits sequence from a string in cell

sql server 按数字选择列

sql - PostgreSQL 仅将特定表设置为字符集

mysql - 相交MySql

c++ - 如果两个值相同,为什么断言会失败?

javascript - 创建类似于电子表格的列索引

sql - 如果存在重复行,则增加 SQL 数据库中的列值

sql - Linq to SQL 等效于 SUM GROUP BY SQL 语句