Python 带有Group By的Django SQL Windows函数
我有这个问题Python 带有Group By的Django SQL Windows函数,python,sql,django,mariadb,Python,Sql,Django,Mariadb,我有这个问题 选择 DAYOFWEEK(date)作为“周日”, 总额(收入)/总额(总额(收入))超过()作为订单的“版次份额” 按星期一分组(已完成) 它将生成一个显示收入份额的表格 我的目标是在Django的ORM层的帮助下对其进行归档 我使用RawSQL尝试了以下操作: share=Orders.objects.values(week\u day=ExtractIsoWeekDay('date'))\ .annotate(收益共享=RawSQL('SUM(收益)/SUM(收益))ov
选择
DAYOFWEEK(date)作为“周日”,
总额(收入)/总额(总额(收入))超过()作为订单的“版次份额”
按星期一分组(已完成)
它将生成一个显示收入份额的表格
我的目标是在Django的ORM层的帮助下对其进行归档
我使用RawSQL尝试了以下操作:
share=Orders.objects.values(week\u day=ExtractIsoWeekDay('date'))\
.annotate(收益共享=RawSQL('SUM(收益)/SUM(收益))over()'))
这将产生一个没有分组依据的单一值。执行的查询:
选择
工作日(`orders`.`date`)+1为`week\u day`,
(总额(收入)/总额(总额(收入))超过())作为“收入”份额`
从`命令`
通过使用窗口功能也可以实现这一点:
share=Orders.objects.values(week\u day=ExtractIsoWeekDay('date'))\
.annotate(收入_share=Sum('revenue')/窗口(Sum('revenue'))
这将导致以下查询
选择
工作日(`order`.`date`)+1为`week\u day`,
(SUM('order`.'revenue`)/SUM('order`.'revenue`)OVER())作为'rev_share'
按工作日(`order`.`date`)从`order`组开始+1个订单,按空
但数据是完全错误的。看起来窗口没有使用整个桌子
提前感谢您的帮助。我不知道您的问题是什么。谢谢您指出这一点。我对那个问题有点太失望了。我不明白你的问题是什么。谢谢你指出这一点。我对那个问题有点太失望了。