강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của pink321ryu
pink321ryu

câu hỏi đã được viết

Tại sao lại thế? Thật là tuyệt vời! Thiết kế DB và xử lý dữ liệu

Một thế giới ngoài các khoản thanh toán được tưởng tượng trong đầu bạn (tạo dữ liệu ảo)

[가상데이터 생성]

Đã giải quyết

Viết

·

211

1

안녕하세요.

워크벤치로 하다보니 동일한 쿼리문에 에러가 나는 경우가 더러 있네요. 구글링으로 보완해가면서 테스트 중입니다.

 

카페 사용관련 가상데이터 설명 (21:06분) 내용 중에 '1일2회 이상 등록된 전화번호 및 결제일자를 삭제 하는 쿼리문 실행시,

"" 요런 메시지가 나와서, 구글링을 해보니, 삭제시 자기 테이블을 조회할 수 없기 때문이라고 나와서 수정을 했는데요.

요렇게 하면 제대로 수행이 되는 것 같습니다.

 

근데 궁금한 건... 강의내용의 쿼리문은

고객의 해당일자 전체를 삭제하는 것 같은데요.

하루 최초 또는 마지막 건수를 남기고 나머지를 삭제하는 쿼리문을 좀 알 수 있을까요?

 

 

sqlmysqlmariadbmysql-workbench

Câu trả lời 1

0

swa님의 프로필 이미지
swa
Người chia sẻ kiến thức

안녕하세요 류재안 님.

우선 제가 사용하는 MariaDB서버 버전을 알려드리면 10.6 및 11.x 입니다. 혹시 버전 문제 소지가 있을 수 있어 말씀드립니다.

요청하신 쿼리는 다음과 같습니다.

DELETE FROM sc_payment

WHERE (usr_phnumber, DATE_FORMAT(pay_dt,'%Y-%m-%d %H'))

IN (

SELECT usr_phnumber, pay_dt FROM (

SELECT usr_phnumber,DATE_FORMAT(pay_dt,'%Y-%m-%d %H') AS pay_dt

,ROW_NUMBER() OVER

(PARTITION BY usr_phnumber

ORDER BY usr_phnumber,DATE_FORMAT(pay_dt,'%Y-%m-%d %H') DESC) AS row_number_

FROM sc_payment

) a

WHERE a.row_number_ != 1

);

위의 쿼리는 년-월-일-시까지만 보았을 때 하루동안 중복된 건들을 처리합니다. 초 단위까지 하시려면 DATE_FORMAT의 시간형식 포맷을 초 단위까지 적절히 기재해 주시면 됩니다.

수행 내용은 동일한 전화번호에 대해 하루 동안 마지막 건수만 남기고 나머지를 삭제하는 쿼리입니다.

 

유사한 내용이 채널에 있어 URL을 남깁니다.

https://www.youtube.com/watch?v=tqClIDsoa3U&t=50s

 

pink321ryu님의 프로필 이미지
pink321ryu
Người đặt câu hỏi

네, 감사합니다.

Hình ảnh hồ sơ của pink321ryu
pink321ryu

câu hỏi đã được viết

Đặt câu hỏi