I have table logs
x
id status
----------------
SR123 20
SR123 19
SR123 19
SR456 1
SR456 2
SR456 2
Table 2 status_master
id status
-------------------------
1 Verify Email Success
2 Email verification failed
19 Send SMS Failed
20 Send SMS Success
So, now I’m trying to get the retry count for each scenario. Expected result
status count
----------------
19 1
1 1
Advertisement
Answer
Sounds like an aggregation of an aggregation to me. Try:
SELECT status, [count] = SUM(retries)
FROM (
SELECT status, retries = COUNT(*) - 1
FROM log
GROUP BY id, status
HAVING COUNT(*) >= 2
) G
GROUP BY status
ORDER BY status
Results
status | count |
---|---|
2 | 1 |
19 | 1 |
My results were different than your expected results. Did you mean for status = 1 to be status = 2 in your results?
See this db<>fiddle.