: 동시성을 만족하게 실행되어야 하는 SQL을 묶어서 하나의 작업으로 처리하는 방법
ex) 은행 계좌 이체 : 인출과 입금의 두 과정이 동시에 이루어져야한다. → 이런 과정을 트랜잭션으로 묶어야한다.
BEGIN;
인출
입금
END;
END == COMMIT, 시작전 상태로 돌아가고 싶으면 rollback을 사용한다.
참고) DELETE FROM VS TRUNCATE
: DELETE FROM은 WHERE을 사용해서 특정 레코드만 삭제가 가능하다. 그러나 TRUNCATE은 테이블에서 모든 레코드를 삭제한다. 또한 트랜잭션에서는 DELETE FROM만 사용 가능하다.
LSITAGG(channel,’→’) WITHIN GROUP (ORDER BY ts) channels
처럼 사용하기도 함.LAG(channel,1) OVER(PARTITION BY userID ORDER BY ts)
주의) 값이 없는경우? → DESC를 활용해서 내림차순으로 긁는다..