By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE mytable (
unique_1 int,
unique_2 varchar(25),
Number int
);
insert into mytable values
(222, 'MIN', 1),
(222, 'MIN', 2),
(222, 'MAX', 1),
(333, 'MIN', 1),
(333, 'MAX', 2),
(444, 'MAX', 1),
(444, 'MAX', 2),
(444, 'MAX', 3);
Records: 8 Duplicates: 0 Warnings: 0
SELECT unique_1, MIN(case when unique_2 = 'MIN' then Number end) AS minVal,
MAX(case when unique_2 = 'MAX' then Number end) AS maxVal
FROM mytable
group by unique_1
unique_1 | minVal | maxVal |
---|---|---|
222 | 1 | 1 |
333 | 1 | 2 |
444 | null | 3 |
SELECT unique_1, CASE WHEN minVal IS NOT NULL THEN 'MIN' ELSE 'MAX' END AS 'unique_2',
COALESCE(minVal, maxVal) as number
FROM (
SELECT unique_1, MIN(CASE WHEN unique_2 = 'MIN' THEN Number END) AS minVal,
MAX(CASE WHEN unique_2 = 'MAX' THEN Number END) AS maxVal
FROM mytable
group by unique_1
) AS s
unique_1 | unique_2 | number |
---|---|---|
222 | MIN | 1 |
333 | MIN | 1 |
444 | MAX | 3 |