数据库系统原理与实践——修改第三次作业

题目改了,之前应该是出错了。按照正常情况就应该是返回订单总金额。
This commit is contained in:
423A35C7 2024-10-10 16:48:36 +08:00
parent bbc8bd6e3f
commit 4a4d9e0e21

View File

@ -322,21 +322,19 @@ select cust_id, order_date from Orders natural join OrderItems where prod_id='BR
\end{csv} \end{csv}
\end{verification} \end{verification}
\questionandanswer[]{ \questionandanswer[]{
有一个顾客ID列表其中包含他们已订购的总金额。OrderItems 表代表订单信息OrderItems 表有订单号order_num 和商品售出价格item_price、商品数量quantity。编写SQL语句返回顾客 IDOrders 表中的 cust_id并使用子查询返回 total_ordered 每个顾客的订单总数,将结果按金额从大到小排序。 有一个顾客ID列表其中包含他们已订购的总金额。OrderItems 表代表订单信息OrderItems 表有订单号order_num 和商品售出价格item_price、商品数量quantity。编写SQL语句返回顾客 IDOrders 表中的 cust_id并使用子查询返回 total_ordered 每个顾客的所有订单总金额,将结果按金额从大到小排序。
\includegraphics[width=0.5\linewidth]{imgs/2024-10-04-10-27-32.png} \includegraphics[width=0.5\linewidth]{imgs/2024-10-04-10-27-32.png}
}{ }{}
注意返回的是订单总数,但是要按照金额从大到小排序。
}
{ {
\begin{minted}{SQL} \begin{minted}{SQL}
select cust_id, count(*) as total_ordered select cust_id, sum(total) as total_ordered
from Orders from Orders
join (select order_num, sum(item_price * quantity) as total join (select order_num, sum(item_price * quantity) as total
from OrderItems from OrderItems
group by order_num) as a on Orders.order_num = a.order_num group by order_num) as a on Orders.order_num = a.order_num
group by cust_id group by cust_id
order by sum(total) desc; order by total_ordered desc;
\end{minted} \end{minted}
} }
\begin{verification} \begin{verification}
@ -368,19 +366,19 @@ values ('a0001', 'cust10'),
('a0003', 'cust1'), ('a0003', 'cust1'),
('a0013', 'cust2'); ('a0013', 'cust2');
select cust_id, count(*) as total_ordered select cust_id, sum(total) as total_ordered
from Orders from Orders
join (select order_num, sum(item_price * quantity) as total join (select order_num, sum(item_price * quantity) as total
from OrderItems from OrderItems
group by order_num) as a on Orders.order_num = a.order_num group by order_num) as a on Orders.order_num = a.order_num
group by cust_id group by cust_id
order by sum(total) desc; order by total_ordered desc;
\end{minted} \end{minted}
\begin{csv} \begin{csv}
,cust_id,total_ordered ,cust_id,total_ordered
1,cust2,1 1,cust2,2242
2,cust1,2 2,cust1,1404
3,cust10,1 3,cust10,1050
\end{csv} \end{csv}
\end{verification} \end{verification}
\questionandanswer[]{ \questionandanswer[]{