好的,我正在尝试写一个查询,返回重复发生的事情的最大和最小日期。因此,如果一部电影在1982年、1999年和2001年拍摄了3次,则查询将返回:
Title : Min : Max
movietitle1 : 1982 : 2001
movietitle1 : 1982 : 1999
movietitle1 : 1999 : 2001由于有3种可能的组合,因此有3种结果。如果一部电影只拍了两次,那么它就是第一次约会和最后一次约会。
Title : Min : Max
movietitle2 : 1960 : 2006这是我现在的查询,不幸的是,它只显示了最小和最大值,而忽略了任何可能的第三个值。它也不能使用GROUP BY,因为我没有汇总数据:
SELECT name, MIN(releaseyear), MAX(releaseyear)
FROM movielist
HAVING MAX(releaseyear) != MIN(releaseyear)发布于 2013-09-11 17:41:40
假设你在一个名为movielist的表中有数据,数据是这样的:
Title Date
movie1 1982
movie1 1999
movie1 2001您可以尝试如下所示:
Select m1.title, m1.date min, m2.date max
From movielist m1
inner join movielist m2
on m1.title = m2.title and m1.date < m2.date我在本地MySQL测试数据库上测试了以下内容:
create table movielist (TITLE VARCHAR(50), MOVIEDATE DATE )
insert into movielist values ('movie1', '2005-01-01');
insert into movielist values ('movie1', '2007-01-01');
insert into movielist values ('movie1', '2010-01-01');
insert into movielist values ('movie2', '2001-01-01');
insert into movielist values ('movie2', '2002-01-01');
insert into movielist values ('movie3', '2003-01-01');
Select m1.title, m1.moviedate min, m2.moviedate max
From movielist m1
inner join movielist m2
on m1.title = m2.title and m1.moviedate < m2.moviedate我得到了以下结果,我相信这就是你想要的(我使用了日期而不是字符串,但理论是相同的):
movie1 2005-01-01 2007-01-01
movie1 2005-01-01 2010-01-01
movie1 2007-01-01 2010-01-01
movie2 2001-01-01 2002-01-01https://stackoverflow.com/questions/18737406
复制相似问题