С таблицей базы данных 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
?
В настоящее время я могу только думать о наборе уникальных комбинаций букв, для уникальной комбинации, проверяющей минимальные и максимальные годы, и вставки строк в новую таблицу. Текущая таблица используется в устаревшем модуле, который я не хочу касаться в это время.
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
Просто суммируйте по трем столбцам и возьмите min/max:
SELECT
col1, col2, col3, MIN(year) AS min_year, MAX(year) AS max_year
FROM yourTable
GROUP BY
col1, col2, col3;
select letter1,
letter2,
letter3,
min(year),
max(year)
from table
group by letter1,
letter2,
letter3
order by letter1,
letter2,
letter3
попробуй это -
select A, B, C, max(D), min(D)
into #temp
from tablename
group by A, B, C