Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据库SQL-查询以查找前5个值以及每个值生成的总数_Sql_Database - Fatal编程技术网

数据库SQL-查询以查找前5个值以及每个值生成的总数

数据库SQL-查询以查找前5个值以及每个值生成的总数,sql,database,Sql,Database,我需要一个SQL查询来列出最常租用的5张DVD,按降序排列 顺序对于我需要显示的每一张唱片:DVD标题、租用频率和 每个DVD片名产生的总租金收入 我的桌子: DVD 我的属性: DVD片名, DVD销售记录中单个DVD标题的销售数量, DVD该记录中单个DVD片名的总销售额(英镑) 我自己也有: SELECT DVD-title, DVD-sales FROM DVD WHERE ( DVD-sales IN ( SELECT TOP (5) DVD-sales FROM table as

我需要一个SQL查询来列出最常租用的5张DVD,按降序排列 顺序对于我需要显示的每一张唱片:DVD标题、租用频率和 每个DVD片名产生的总租金收入

我的桌子: DVD

我的属性: DVD片名, DVD销售记录中单个DVD标题的销售数量, DVD该记录中单个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代码解决方案,谢谢

如果表格的每个标题只有一行,那么它将非常简单:

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。我使用SQL server作为我数据库的基础,但稍微更改了代码以符合我所遵循的指南的格式,但是SQL server代码应该可以。每个DVD标题是否只有一行,或者相同的标题是否可以出现在多个不同的行上?听起来这正是我一直试图弄清楚的,非常感谢你!只有一件事,最后一个括号后面的A应该在那里吗?是的,“A”应该在那里-它给子查询的结果命名。TotalQuantity和TotalValue是我为求和值指定的名称抱歉,我可能应该选择与您的名称更接近的名称。如果您自己运行子查询,您可能会更清楚—从选择DVD标题到按DVD标题分组。您将看到结果,我们将其称为“A”,并将其视为我们可以从中选择的表格。谢谢Alan,您帮了我们很多忙: