我已經完成了這個 SQL 練習,但我不知道如何專門顯示應該包含具有最低購買次數和購買價值的媒體型別的一行。
我完全不確定在“分組依據”之后應該添加什么?
所以這就是我想要的輸出: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
uj5u.com熱心網友回復:
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;
根據要求,您還可以Minimum Total Purchase Value在ORDER BY子句中使用:
ORDER BY `Total Number of Purchase`, `Minimum Total Purchase Value` LIMIT 1
切勿對表/列別名使用單引號。
對于 SQLite,您可以使用雙引號、反引號或方括號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/511655.html
標籤:sqlsqlite加入通过...分组sql-order-by
上一篇:SQLite:使用聯合優化查詢
