Skip to content
Advertisement

Find the record which have the greater value in top 2 month

I want to retrieve a record where the age group is greater than 50 and show the top 2 month.

So, this is my table with 3 column 

Age_group infection Month 
30-39     50        2
40-49     11        1
40-49     18        4
50-59     27        2
60-69     30        4
50-59     5         3
70-79     23        3
50-59     4         1 

The result should return like this: 

Month 
4 
3

As we can see in the age_group there is 2 row fall in month ‘3’. The total value in month ‘3’ is 28. And the another month which have the greater value is month ‘4’

Advertisement

Answer

You must group by month and sum the infections before you sort and return the top2:

select month, sum(infection) total_infection
from tablename
where age_group > '50'
group by month
order by total_infection desc
limit 2

See the demo.
Results:

| Month | total_infection |
| ----- | --------------- |
| 4     | 30              |
| 3     | 28              |
User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement