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