First of all, why you want to rewrite this? If the query returns correct results and performs fast enough what's the benefit?
If you're worried about the execution plan, choosing the optimal plan is the job optimizer does and it quite often does a good job as long as proper access paths are available.
Having that said, this can be re-written in several ways. For example one variation could be something like
with innerquery (Criteria, LimitAmt) AS (
SELECT CASE
WHEN [LimitAmt] between 0 and 100000 THEN 'UPTO 1 LAKH'
WHEN [LimitAmt] between 100001 and 500000 THEN 'ABOVE 1 AND UPTO 5'
WHEN [LimitAmt] between 500001 AND 1000000 THEN 'ABOVE 5 AND UPTO 10'
...
WHEN [LimitAmt] > 10000000 THEN 'ABOVE 1CR'
END AS Criteria,
LimitAmt
FROM LON20190629
WHERE AcOpDt>=20190401
)
SELECT iq.Criteria,
COUNT(*) as Account,
SUM(iq.LimitAmt) as Limit
FROM innerquery iq
GROUP BY iq.Criteria;