我想按其
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 %'
我们可以在这里将
SUBSTRING()
与正则表达式一起使用:
SELECT SUBSTRING(user_type from '^\w+') AS user_type, COUNT(*) AS count
FROM yourTable
GROUP BY user_type;