postgresql 데이터베이스 초보자 입니다 ㅠㅠ
---USER 테이블---
이름 | 시간 | 상태 |
AAA | 2017-08-01 12:00:00 | 1 |
BBB | 2017-07-01 12:00:00 | 1 |
CCC | 2017-09-01 12:00:00 | 1 |
AAA | 2016-12:01 12:00:00 | 1 |
BBB | 2016-11-01 12:00:00 | 1 |
위와 같은 형식의 DB를 최신 날짜기준으로 update 쿼리로 상태를 변경하려고 하는데
막히는 부분이 있어서 질문 남깁니다.
이름 | 시간 | 상태 |
AAA | 2017-08-01 12:00:00 | 1 |
BBB | 2017-07-01 12:00:00 | 1 |
CCC | 2017-09-01 12:00:00 | 1 |
AAA | 2016-12:01 12:00:00 | 0 |
BBB | 2016-11-01 12:00:00 | 0 |
제가 하려고 하는 쿼리는 바로 위에 처럼 이름별로 최신날짜 기준을 확인하여
최신 날짜가 아닌 이름의 상태에 대해서 0 으로 변경하려고 합니다.
SELECT 이름, max(시간) FROM USER GROUP BY 이름;
select 문으로 조회까지는 실행 했는데 update를 하면 오류가 발생합니다 ㅠㅠ
일단 제가 실행했던 쿼리문은
update USER set 상태='0'
where (SELECT 이름, max(시간) from USER GROUP BY 이름)!
이것처럼 이름 기준 최신날짜가 아닌 것에 대해서 0으로 변경하라는 명령을 내리고 싶은건데
ERROR: subquery must return only one column
LINE 3: where (SELECT 이름, max(시간) from USER...
이런 오류가 발생되네요..
어떻게 쿼리문을 짜야 할까요 ㅠㅠ
ps. 간단하게 하기 위해서 컬럼을 3개만 작성했으며 컬럼 갯수는 다릅니다