SQL: Filter rows with max value

前端 未结 3 1142
一整个雨季
一整个雨季 2020-12-21 00:45

This is my table structure:

File    |   Version     |   Function
1       |   1           |   1
1       |   2           |   1
1       |   3           |   1
1          


        
3条回答
  •  天命终不由人
    2020-12-21 01:39

    Note that this will return multiple rows per file if the overall latest version for a file exists for different functions. i.e. if your example above had an additional row (1,3,2) this would return 2 rows for file 1.

    select
        t1.file,
        t1.version,
        t1.function
    from 
        mytable t1
    join (
        select 
            t2.file,
            max(t2.version) max_version        
        from  mytable t2
        group by t2.file
    ) t3 join t1.file = t3.file and t1.version = t3.max_version
    

提交回复
热议问题