現在、この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
EDIT:答え
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;
我々は 'GROUP BY(CONCATE(COL1とCOL2))を持っていた場合、私は思っていた' –