【发布时间】:2018-08-12 07:36:28
【问题描述】:
我有这样一张表:
MySQL [distributor]> select * from orderitems;
+-----------+------------+---------+----------+------------+
| order_num | order_item | prod_id | quantity | item_price |
+-----------+------------+---------+----------+------------+
| 20005 | 1 | BR01 | 100 | 5.49 |
| 20005 | 2 | BR03 | 100 | 10.99 |
| 20006 | 1 | BR01 | 20 | 5.99 |
| 20006 | 2 | BR02 | 10 | 8.99 |
| 20006 | 3 | BR03 | 10 | 11.99 |
| 20007 | 1 | BR03 | 50 | 11.49 |
| 20007 | 2 | BNBG01 | 100 | 2.99 |
| 20007 | 3 | BNBG02 | 100 | 2.99 |
| 20007 | 4 | BNBG03 | 100 | 2.99 |
| 20007 | 5 | RGAN01 | 50 | 4.49 |
| 20008 | 1 | RGAN01 | 5 | 4.99 |
| 20008 | 2 | BR03 | 5 | 11.99 |
| 20008 | 3 | BNBG01 | 10 | 3.49 |
| 20008 | 4 | BNBG02 | 10 | 3.49 |
| 20008 | 5 | BNBG03 | 10 | 3.49 |
| 20009 | 1 | BNBG01 | 250 | 2.49 |
| 20009 | 2 | BNBG02 | 250 | 2.49 |
| 20009 | 3 | BNBG03 | 250 | 2.49 |
+-----------+------------+---------+----------+------------+
18 rows in set (0.070 sec)
每个订单的total_price可以用原始SQL计算为;
MySQL [distributor]> select order_num, sum(quantity*item_price) as total_price
-> from orderitems
-> group by order_num
-> order by total_price;
+-----------+-------------+
| order_num | total_price |
+-----------+-------------+
| 20008 | 189.60 |
| 20006 | 329.60 |
| 20005 | 1648.00 |
| 20007 | 1696.00 |
| 20009 | 1867.50 |
+-----------+-------------+
5 rows in set (0.041 sec)
我想使用 Django ORM 来完成它,
检查 Queryset API 文档后,我找到了sum,但没有找到“组”。
如何使用 Django Queryset 完成任务?
【问题讨论】:
-
请分享您的
OrderItems模型。
标签: django