对数据库表先分组(group)然后排序(order)操作
在完善项目的过程中,我在获取今日新增疫情人数前五省份的时候发现一个出现了两个辽宁省,我查看sql以后发现是因为没有对确诊人数求和所导致的,那么我就需要对数据先进行省份分组,然后对新增确诊字段进行排序,选出前五。
类似于这样一个表,里面有不同时间的数据,我们呢就是要选出confirm_add字段最大的前五省份的信息。
select province,sum(confirm_add) from details
where update_time=(select update_time from details order by update_time desc limit 1)
group by province
order by sum(confirm_add) DESC limit 5
一开始我犯了一个错误在orderby字段写进去confirm_add,发现总是报错,最后查询到,是因为数据库是先分组后排序,所以当我们分组以后就不能再对单独的一个记录进行查询,我们查询的都是组的信息,比如说组的个数,组的平均数,再比如说这种情况下,可以求出分组的某一项数据的和。