如何获取SQL中一组行的最小值和最大值?

时间:2018-02-20 07:23:15

标签: mysql sql

使用以下样式的MySQL数据库表:

A  B  C  D
-------------   
a, b, c, 1990
a, b, c, 1991
a, b, c, 1992
a, d, f, 1990
a, d, f, 1991
a, d, f, 1992
e, g, h, 1990
e, g, h, 1991

是否有一种简单的或SQL的方式来形成

a, b, c, 1990, 1992
a, d, f, 1990, 1992
e, g, h, 1990, 1991

目前我只能考虑获取唯一的字母组合,foreach唯一组合检查最小和最大年份,以及将行插入新表。当前表格在我不想接触的传统模块中使用。

4 个答案:

答案 0 :(得分:2)

只需聚合三列并取最小/最大值:

SELECT
    col1, col2, col3, MIN(year) AS min_year, MAX(year) AS max_year
FROM yourTable
GROUP BY
    col1, col2, col3;

答案 1 :(得分:2)

select A, B, C, max(D) as max_col, min(D) as min_col
from table
group by A, B, C
order by A,B,C

答案 2 :(得分:1)

     select letter1,
            letter2,
            letter3,
            min(year),
            max(year) 
       from table 
   group by letter1,
            letter2,
            letter3 
   order by letter1,
            letter2,
            letter3

答案 3 :(得分:1)

试试这个 -

select A, B, C, max(D), min(D) 
into #temp
from tablename
group by A, B, C