使用最大和分组两次

莎拉

我阅读了有关该主题的一些文章,包括:在MySQL中两次使用GROUP BY,并且知道这应该与我需要的逻辑相同,但是我只是不知道如何应用它。

请注意,我知道架构很糟糕(例如,我仍然不明白为什么版本表和发布表是分开的……。)但是我无权更改它。

(我有一些正在使用的敏感信息,所以我将使用一个使用电影的示例来模拟我的问题。)

Tables:

Title
TitleID     MovieTitle
1           Great Movie #1
2           Great Movie #2

Edition
StockNo editionID   EditionText         Media       TitleID
1           1       Regular Edition     DVD         1
2           1       Regular Edition     Blue-ray    1
3           2       Extended Version    DVD         1
4           2       Extended Version    Blue-ray    1
5           1       Regular Edition     DVD         2
6           1       Regular Edition     Blue-ray    2
7           2       Extended Version    DVD         2
8           2       Extended Version    Blue-ray    2

Published
StockNo DatePublished
1       1999.01.01
2       2003.01.01
3       2000.01.01
4       1999.01.01
5       1997.01.01
6       1998.01.01
7       2012.01.01
8       2009.01.01

我想返回行,每一行都是其中一个标题的一个版本。对于每种版本的书名,无论媒体如何,我都希望返回最新的出版日期。

例如:

重大举措#1,普通版,最新发布日期

大电影#1,扩展版本,最新发布日期

重大举措#2,常规版本,Latest_published_date

精彩电影#2,扩展版本,最新发布日期

我只是失去了逻辑的海...

WITH Datespublished AS
(   Select  tt.titleid
            ,ed.editionID
            ,pb.datepublished 
    FROM    title tt
            left join edition ed on tt.titleid=ed.titleid
            left join published pb on pb.stockno=ed.stockno
)


select titleid, editionID, max (datepublished) as maxdate from Datespublished group by titleid THEN editionID?!?!?!?
安多玛

您可以使用逗号将多个列分组。改变:

group by titleid THEN editionID

到:

group by titleid, editionID

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章