728x90
-- 테이블 생성
CREATE TEMPORARY TABLE t (
id1 INT
, id2 INT
, id3 INT
, val int
)
;
-- 테스트 데이터 입력
INSERT INTO t
SELECT 1 AS id1, 2 as id2, 3 AS id3, 1 AS val UNION ALL
SELECT 2 AS id1, 1 as id2, 3 AS id3, 1 AS val UNION ALL
SELECT 3 AS id1, 2 as id2, 1 AS id3, 1 AS val UNION ALL
SELECT 2 AS id1, 3 as id2, 1 AS id3, 1 AS val
;
-- id1,id2,id3 값을 큰 값부터 max_id, mid_id, min_id로 재배치 한다.
SELECT GREATEST(id1, id2, id3) max_id
, IF( id1 NOT IN ( GREATEST(id1, id2, id3), LEAST(id1, id2, id3) ), id1, IF( id2 NOT IN ( GREATEST(id1, id2, id3), LEAST(id1, id2, id3) ), id2, id3)) mid_id
, LEAST(id1, id2, id3) min_id
, id1, id2, id3
FROM t
;
<실행결과>
728x90
'Data Science > DB+SQL' 카테고리의 다른 글
[MYSQL] 시간 단위로 그룹핑 및 카운팅 (0) | 2021.11.03 |
---|---|
[MYSQL] 날짜 연산 함수 (DATEDIFF, DATE_ADD) (0) | 2021.10.12 |
[MY SQL] 정규식 (REGEXP) (0) | 2021.09.01 |
[MYSQL] SQL - LIKE OR 를 정규식(REGEXP)으로 튜닝 (0) | 2021.09.01 |
[MYSQL] Temporary Table Control (임시 테이블 다루기) (0) | 2021.08.10 |
최근댓글