当前,当我发出此SQL时,它将获得不同的用户名。
我有一些不同的用户名,它们代表组,例如GRP_BSN。
GRP_BSN
我想将所有其他用户名(恰好是数字)分组为一个组,例如 GRP_OTHERS
GRP_OTHERS
select username, count(*) from host where seq between 0 and 2000 group by username; 63149 1 63732 1 64110 2 70987 12 76841 4 GRP_BSN 226 GRP_ASN 243 GRP_DSC 93
我可以实现以下目标吗?
GRP_OTHERS 20 GRP_BSN 226 GRP_ASN 243 GRP_DSC 93
编辑:从答案修改的查询
select username, count(*) from host where created_dt -- date selection between to_date('2012-may-23 00:00:00', 'yyyy-mon-dd hh24:mi:ss') and to_date('2012-may-23 23:59:59', 'yyyy-mon-dd hh24:mi:ss') GROUP BY CASE WHEN REGEXP_LIKE(username, '^\d+$') THEN 'GRP_OTHERS' ELSE username END;
@bfavaretto很好(对他+1),但是如果您不了解username前缀或前缀不同,则可以使用类似以下内容的方法:
username
GROUP BY CASE WHEN REGEXP_LIKE(username, '^\d+$') THEN 'GRP_OTHERS' ELSE username END