我需要一个SQL查询来列出前5个最常租用的DVD,按降序排序 订购。对于我需要显示的每条记录:DVD标题,租用的频率和 每个DVD标题产生的总租金收入。
我的桌子: DVD
我的属性: DVD-标题, DVD销售(该记录中单个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
)
)
(“表作为”一个关键词?还是应该把我的表名放在那里?)
不确定上述代码是否正确,我不知道如何为每个DVD标题生成总租金收入
请在答案中包含SQL代码解决方案,谢谢!
答案 0 :(得分:1)
如果表格每个标题有一行,那么就像:
一样简单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个结果。