使用以下样式的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唯一组合检查最小和最大年份,以及将行插入新表。当前表格在我不想接触的传统模块中使用。
答案 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