数据库 SQL - 查询以查找前 5 个值和每个值生成的总数
Database SQL - Query to find top 5 values and total generated by each value
我需要一个 SQL 查询来列出前 5 个最常租借的 DVD,按降序排列
命令。对于我需要显示的每条记录:DVD 标题、租用的频率和
每个 DVD 标题产生的总租金收入。
我的table:
DVD
我的属性:
DVD-Title,
DVD-sales(该记录中单个 DVD 标题的销售数量),
DVD-Total(该记录中单个 DVD 影片的总销售额(英镑)
我自己有这个:
SELECT DVD-title, DVD-sales
FROM DVD
WHERE
(
DVD-sales IN
(
SELECT TOP (5) DVD-sales
FROM table as DVD
GROUP BY DVD-sales
ORDER BY DVD-sales DESC
)
)
("table as" 是关键词吗?还是我应该把我的 table 名字放在那里?)
不知道上面的代码对不对,也不知道每张DVD的总租金收入是怎么算的
请在您的答案中包含一个SQL代码解决方案,谢谢!
如果 table 每个标题只有一行,它会很简单:
SELECT TOP 5 "DVD-Title", "DVD-Sales", "DVD-Total"
FROM DVD
ORDER BY "DVD-Sales" DESC
但是,假设同一个标题可以出现多次,则如下查询应该有效:
SELECT TOP 5 "DVD-Title", TotalQuantity, TotalValue
FROM
(
SELECT
DVD-Title,
SUM("DVD-Sales") AS TotalQuantity,
SUM("DVD-Total") AS TotalValue
FROM DVD
GROUP BY "DVD-Title"
) A
ORDER BY TotalQuantity DESC
此查询所做的是首先汇总您的数据,以便每个标题只有一行,然后按总数量降序对结果数据进行排序,并返回前 5 个结果。
我需要一个 SQL 查询来列出前 5 个最常租借的 DVD,按降序排列 命令。对于我需要显示的每条记录:DVD 标题、租用的频率和 每个 DVD 标题产生的总租金收入。
我的table: DVD
我的属性: DVD-Title, DVD-sales(该记录中单个 DVD 标题的销售数量), DVD-Total(该记录中单个 DVD 影片的总销售额(英镑)
我自己有这个:
SELECT DVD-title, DVD-sales
FROM DVD
WHERE
(
DVD-sales IN
(
SELECT TOP (5) DVD-sales
FROM table as DVD
GROUP BY DVD-sales
ORDER BY DVD-sales DESC
)
)
("table as" 是关键词吗?还是我应该把我的 table 名字放在那里?)
不知道上面的代码对不对,也不知道每张DVD的总租金收入是怎么算的
请在您的答案中包含一个SQL代码解决方案,谢谢!
如果 table 每个标题只有一行,它会很简单:
SELECT TOP 5 "DVD-Title", "DVD-Sales", "DVD-Total"
FROM DVD
ORDER BY "DVD-Sales" DESC
但是,假设同一个标题可以出现多次,则如下查询应该有效:
SELECT TOP 5 "DVD-Title", TotalQuantity, TotalValue
FROM
(
SELECT
DVD-Title,
SUM("DVD-Sales") AS TotalQuantity,
SUM("DVD-Total") AS TotalValue
FROM DVD
GROUP BY "DVD-Title"
) A
ORDER BY TotalQuantity DESC
此查询所做的是首先汇总您的数据,以便每个标题只有一行,然后按总数量降序对结果数据进行排序,并返回前 5 个结果。