有一个表 top1brand sales1 top2brand sales2 top3brand sales 3 city 李宁 10000 耐克 8000 阿迪 7000 上海 耐克 20000 特步 10000 回力 3000 上海 求上海地区,排名销售排名前三的品牌 有啥好的思路?
2条回答 默认 最新
- 易冷天涯 2021-03-29 17:04关注
假设你这个表结构如下:
top1brand sales1 top2brand sales2 top3brand sales3 city
李宁 10000 耐克 8000 阿迪 7000 上海
耐克 20000 特步 10000 回力 3000 上海也就是
class S(models.Model): top1brand = models.CharField(max_length=4) sales1 = models.IntegerField(default=0) top2brand = models.CharField(max_length=4) sales2 = models.IntegerField(default=0) top3brand = models.CharField(max_length=4) sales3 = models.IntegerField(default=0)
那么我建议可以这样,用以下三条分别取出
sales_1 sales_2 sales_3 的前三,最后再做一个对比。S.objects.filter(city='上海').values('top1brand').order_by().annotate(Sum('sales1')).order_by('-sales1__sum') S.objects.filter(city='上海').values('top2brand').order_by().annotate(Sum('sales2')).order_by('-sales2__sum') S.objects.filter(city='上海').values('top3brand').order_by().annotate(Sum('sales3')).order_by('-sales3__sum')
其实,如果表格结构是下面这个情况,那就简单多了。
class S(models.Model): brand = models.CharField(max_length=4) sales = models.IntegerField(default=0)
解法:
S.objects.filter(city='上海').order_by('-sales').values()
解决 1无用
悬赏问题
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算