아래 문제의 해답 정보
아래 문제의 해답본문
여러가지 답이 있을 수 있겠지만, 한문장으로는 안되고, 별도로 Column을 추가한후에 지우는 방법입니다.
use simpledb;
ALTER TABLE email_list ADD COLUMN temp SERIAL PRIMARY KEY;
DELETE t1.*
FROM email_list t1
LEFT JOIN ( SELECT MIN(Temp) mintemp
FROM email_list
Group by fname, email ) t2
on t1.temp = t2.mintemp
WHERE t2.mintemp is NULL;
ALTER TABLE email_list DROP COLUMN temp;
select * from email_list;
한문장으로는 아래와 같이 되면 되는데. CTE 문이 Select에서는 먹히는데,
Delete와 Update에서는 안먹히는 것 같습니다.
Select는 가져오는 것이고 delete와 update는 table을 변경하는 것이라서 안되는 것 같습니다.
https://dev.mysql.com/doc/refman/8.0/en/delete.html
WITH dup AS
(
SELECT fname, email,
row_number() OVER(PARTITION BY fname, email ORDER BY email) AS NumOfDups
FROM simpledb.email_list
)
DELETE FROM dup
WHERE NumOfDups > 1;
0
댓글 0개