안녕하세요.
MariaDB와 같은 DBMS를 사용한적이 없어 고난을 많이 겪고 있네요 ㅠ_ㅠ
아래와 같은 방식으로 쿼리를 통해 중복된 행을 제거 하고 싶습니다.
`A`테이블에는 제품ID, 작업시간, 작업내용, Comment 라는 컬럼들이 있을때
제품ID별 작업시간기준 현재행의 바로 다음행(다음 작업시간)의 행과 작업내용이 같을 경우 해당행은 삭제해서 연속된 동일작업의 경우 마지막 작업만 남기도록 하고자 합니다.
그리하여 아래와 같이 쿼리를 작성했는데요.
DELETE A FROM `A` AS A JOIN `A` AS B ON A.제품ID =B.제품ID AND A.작업내용 = B.작업내용 AND A.작업시간 < B.작업시간
위와 같은 쿼리를 실행했을때 데이터가 삭제되길래 잘 되는줄 알았는데
작업순서가
A,A,A,B,B,C,C,C 이런형태라면 잘 삭제가 되지만 A,A,B,B,A,C,C,C 형태라면 밑줄이 있는 애들이 남아야 합니다.
그런데 실제로는 A,A,B,B,A,C,C,C 와 같이 두번째 A는 다음이 B임에도 이후 A작업이 하나라도 있어 같이 삭제되어버리는데요..
즉 바로 다음작업만 비교해야하는데 하나라도 크면 삭제되어 버립니다.
혹시 바로 다음작업과 비교해서 삭제하려면 어떻게 해야 할까요?ㅠ
Mongo 이야기 많이들어서 봤는데 얘도 DB의 종류중에 하나네요...ㅜㅜ
NoSQL이라는걸 처음들었는데.. 이것도 공부 해보도록 하겠습니다 ㅠ
조언해 주셔서 감사합니다 ㅠ
위에분 말처럼 넣을 때 이전 데이터 체크해서 있으면 날짜만 update 로 하던가,
아니면 데이터는 그대로 놔두고, 읽는 곳에서 연속된 데이터를 거르는 식으로 해야할거 같습니다.
중간에 누락도 있어서 재적재하고 그런 경우도 있을것 같아서요...
일단 누적할 데이터를 재점검하는 형식으로 INSERT를 최대한 줄이는 방법으로 하라는 말씀으로 이해했는데 맞을까요?ㅠ