如何解决如何在特殊情况下分组
@bfavaretto很好(对他+1),但是如果您不了解username
前缀或前缀不同,则可以使用类似以下内容的方法:
GROUP BY CASE
WHEN REGEXP_LIKE(username, '^\d+$') THEN 'GRP_OTHERS'
ELSE username
END
解决方法
当前,当我发出此SQL时,它将获得不同的用户名。
我有一些不同的用户名,它们代表组,例如GRP_BSN
。
我想将所有其他用户名(恰好是数字)分组为一个组,例如 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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。