【发布时间】:2013-02-01 18:22:18
【问题描述】:
以下是我构建的查询,用于查找特定电影的最便宜价格以及销售它的发行商,我如何操作它以便列出所有电影及其各自的最高电影价格以及经销商是谁卖的?
/*finds the cheapest price for the movie "American Beauty" and the distributor who sells it*/
SELECT movies.title, movie_distributors.distributor_name, MIN(distributed_movie_list.unit_price) AS lowest_price
FROM distributed_movie_list
INNER JOIN movies ON distributed_movie_list.movie_id = movies.movie_id
INNER JOIN movie_distributors ON movie_distributors.distributor_id = distributed_movie_list.distributor_id
WHERE movies.title = 'American Beauty'
AND distributed_movie_list.unit_price =
(SELECT MIN(unit_price)
FROM distributed_movie_list
INNER JOIN movies ON distributed_movie_list.movie_id = movies.movie_id
WHERE movies.title = 'American Beauty')
GROUP BY movies.title, distributed_movie_list.distributor_id, movie_distributors.distributor_name;
以下表格用于此查询:
create table movies (
movie_id number(5),
title varchar2(30) not null,
category_code char(3) not null,
description varchar2(500),
released_by number(3) not null,
released_on date not null
);
create table movie_distributors(
distributor_id number(3),
distributor_name varchar2(30) not null,
location varchar2(40),
contact varchar2(40)
);
create table distributed_movie_list(
distribution_id number(8),
movie_id number(5) not null,
distributor_id number(3) not null,
distribute_type varchar2(10),
inventory_quantity number(3) default 0,
unit_price number(8,2)
);
我正在寻找的最终结果是列出每部电影的发行商和最高价格的查询。任何帮助将不胜感激 ; )
【问题讨论】:
-
看来您已经知道如何找到最低电影价格了。您尝试过什么来找到最高的电影价格?
-
您使用的是 MySQL 还是 SQL Server?你试过
max而不是min吗? -
@Jen Talbot:您使用的是哪个 RDBMS - SQLServer、MySQL、Oracle 等?答案将对查询产生影响。