고요빛물결

아래 문제의 해답

· 2019-07-03 (수) 15:31:01 · 1366

여러가지 답이 있을 수 있겠지만,  한문장으로는 안되고, 별도로 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;

|
댓글을 작성하시려면 로그인이 필요합니다.

그누5튜닝

64건
+
제목 글쓴이 날짜 조회
21-05-30 조회 1,422
21-05-30 조회 1,313
21-05-22 조회 1,649
21-05-21 조회 1,326
21-05-15 조회 1,063
21-05-15 조회 1,148
21-03-28 조회 969
21-03-24 조회 1,580
19-09-20 조회 1,891
19-09-19 조회 1,990
19-07-26 조회 1,865
19-07-25 조회 1,424
19-07-24 조회 1,127
19-07-23 조회 1,409
19-07-23 조회 1,459
19-07-23 조회 1,288
19-07-22 조회 1,903
19-07-18 조회 1,336
19-07-17 조회 1,503
19-07-16 조회 1,580
19-07-16 조회 1,413
19-07-15 조회 1,628
19-07-03 조회 1,367
19-06-27 조회 1,353
19-06-26 조회 1,479
19-06-25 조회 1,469
19-06-25 조회 3,384
19-06-24 조회 1,559
19-06-23 조회 1,566
19-06-23 조회 1,604