我有一个要尝试完成的SQL练习,但我想不出如何具体显示一行应该包含购买数量和购买价值最低的媒体类型。
我完全不确定我应该在我的‘group by’后面加上什么?
这就是我想要的输出:https://i.stack.imgur.com/5biiM.png
它是这样的:https://i.stack.imgur.com/oGyLV.png
请注意,我正在使用SQLite
SELECT
M.name AS'MediaType Name',
(SELECT MIN(I.unitprice * I.quantity) FROM tracks) AS 'Minimum Total Purchase Value',
(SELECT COUNT(I.Quantity) FROM invoice_items) AS 'Total Number of Purchase'
FROM
media_types M
JOIN
tracks T
JOIN
invoice_items I ON M.MediaTypeId = T.MediaTypeId
AND T.trackid = I.trackid
--This is where I think I'm making a mistake:
GROUP BY
M.name
1条答案
按热度按时间apeeds0o1#
使用每个
ON
子句在其各自的联接和聚合之后正确地联接这些表。按
Total Number of Purchase
升序对结果进行排序,并返回第一行:根据要求,您还可以在
ORDER BY
子句中使用Minimum Total Purchase Value
:切勿对表/列别名使用单引号。
对于SQLite,您可以使用双引号、反引号或方括号。