表dish:
字段dish_id,dish_name,create_time
表select_food
字段dish_id,amount,create_time
问题:输入一个date,获取当周的菜品消费数量排行
最重要的部分:如何按周进行统计?
答案或许有很多种,我用的是这一种:DATE_FORMAT(date,fomat)
其中date为时间,fomat为要取得的字符串
如DATE_FORMAT(‘2019-05-28’,’%Y%u’) ,结果为201922,也就是2019年的第二十二周.
接下来就很简单了,按周判断条件就是
DATE_FORMAT(f.create_time,’%Y%u’)= DATE_FORMAT(‘2019-05-28’,’%Y%u’)
放完整的统计排行并排序的语句(按周统计菜品消费数量排行并按逆序排序)
select dish_name,sum(amount) from select_food f left join dish d on f.dish_id = d.dish_id where DATE_FORMAT(f.create_time,’%Y%u’)= DATE_FORMAT(‘2019-05-28’,’%Y%u’) group by f.dish_id order by sum(amount) desc