sqlite 如何让我的SQL语句只显示第一行(最低价+总购买量)

toe95027  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(286)

我有一个要尝试完成的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
apeeds0o

apeeds0o1#

使用每个ON子句在其各自的联接和聚合之后正确地联接这些表。
Total Number of Purchase升序对结果进行排序,并返回第一行:

SELECT M.name AS `MediaType Name`, 
       MIN(I.unitprice * I.quantity) AS `Minimum Total Purchase Value`,
       COUNT(*) AS `Total Number of Purchase`
FROM media_types M 
JOIN tracks T ON M.MediaTypeId = T.MediaTypeId 
JOIN invoice_items I ON T.trackid = I.trackid
GROUP BY M.name
ORDER BY `Total Number of Purchase` LIMIT 1;

根据要求,您还可以在ORDER BY子句中使用Minimum Total Purchase Value

ORDER BY `Total Number of Purchase`, `Minimum Total Purchase Value` LIMIT 1

切勿对表/列别名使用单引号。
对于SQLite,您可以使用双引号、反引号或方括号。

相关问题