数据库系统原理与实践——修改第三次作业
题目改了,之前应该是出错了。按照正常情况就应该是返回订单总金额。
This commit is contained in:
parent
bbc8bd6e3f
commit
4a4d9e0e21
@ -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语句,返回顾客 ID(Orders 表中的 cust_id),并使用子查询返回 total_ordered 每个顾客的订单总数,将结果按金额从大到小排序。
|
有一个顾客ID列表,其中包含他们已订购的总金额。OrderItems 表代表订单信息,OrderItems 表有订单号:order_num 和商品售出价格:item_price、商品数量:quantity。编写SQL语句,返回顾客 ID(Orders 表中的 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[]{
|
||||||
|
Loading…
Reference in New Issue
Block a user