如何按截断/修改字段对 SQL 条目进行分组?

问题描述 投票:0回答:1

我想按其

user_type
属性对表中的所有条目进行分组。然而
user_type
条目以
{type of user} {date account was created}
格式存在,例如

id | user_type
--------------
01 | 'admin 2024-03-01'
02 | 'admin 2024-03-01'
03 | 'user 2024-03-02'
04 | 'user 2024-03-02'
05 | 'premium_user 2024-03-03'

我想获取每种类型用户的计数,忽略值末尾的日期。因此,对于上面的示例,我的查询将返回

user_type | count
-----------------
'admin'        | 2
'user'         | 2
'premium_user' | 1

用户类型可能会发生变化,因此我无法在过滤器中进行硬编码,例如

select count(id) where user_type like 'admin %'

sql postgresql amazon-redshift
1个回答
0
投票

我们可以在这里将

SUBSTRING()
与正则表达式一起使用:

SELECT SUBSTRING(user_type from '^\w+') AS user_type, COUNT(*) AS count
FROM yourTable
GROUP BY user_type;
© www.soinside.com 2019 - 2024. All rights reserved.