[주인공과 등장인물의 집합채, 웹소설정보테이블]작가명 생성관련
343
58 asked
안녕하세요.
[주인공과 등장인물의 집합채, 웹소설정보테이블](4:13)

작가명과 회원아이디를 랜덤하게 생성함에 있어서,
작가명하나에 회원아이디가 여러개로 생성이 될 소지가 있는데요. 실제로 돌려보니 중복이 나오네요. ㅡㅡ;

혹시.. 묶어서 작가명하나에 회원아이디 하나로만 매핑되도록 생성하려면 어떻게 하면 될까요?
샘플로 하는 거라 중복이 이슈거리는 아니지만..
좀 더 배우고자 하는 마음에 문의드립니다. ㅡㅡ;
Answer 1
0
충분히 의미 있는 데이터 가공이라고 생각합니다.
현재 데이터들 조건이 일부 맞지 않지만 아래의 쿼리로 구현해 보았습니다.
-- 중복된 레코드들 중 한 건만 남기고 삭제
DELETE FROM kidset
WHERE (kid, meaning)
IN (
SELECT kid, meaning FROM (
SELECT kid, meaning,
ROW_NUMBER() OVER (PARTITION BY kid ORDER BY meaning) AS row_number_
FROM kidset
) a
WHERE a.row_number_ != 1
);
-- 중복된 레코드들 중 한 건만 남기고 삭제
DELETE FROM eidset
WHERE (eid, meaning)
IN (
SELECT eid, meaning FROM (
SELECT eid, meaning,
ROW_NUMBER() OVER (PARTITION BY eid ORDER BY meaning) AS row_number_
FROM eidset
) a
WHERE a.row_number_ != 1
);
-- 작가명, 회원아이디 컬럼에 각각 중복되지 않은 유일한 값들로 조회
-- 동시에 seq 컬럼에 시퀀스값을 생성하여 임시테이블 nm 생성
SET @rownum :=0;
SET @rownum1:=0;
SET @rownum2:=0;
CREATE OR REPLACE TABLE nm
AS
WITH
a AS (
SELECT @rownum1:=@rownum1+1 AS num, CONCAT('*',kid) AS idset FROM kidset
),
b AS (
SELECT @rownum2:=@rownum2+1 AS num, CONCAT(eid,'*') AS idset FROM eidset
)
SELECT
@rownum:=@rownum+1 AS seq,
a.idset AS 작가명, b.idset AS 회원아이디
FROM a, b
WHERE b.num = a.num
ORDER BY a.idset, b.idset
;
-- 검증(0건 정상)
SELECT 작가명,COUNT(*) FROM nm
group BY 작가명
HAVING COUNT(*)>1
;
-- 검증(0건 정상)
SELECT 회원아이디,COUNT(*) FROM nm
group BY 회원아이디
HAVING COUNT(*)>1
;
-- 작가명 유일한 값, 회원아이디 유일한 값으로 wn_novel 테이블 해당 컬럼 UPDATE
UPDATE wn_novel a INNER JOIN nm
ON a.`작품번호` = nm.seq
SET
a.`작가명` = nm.`작가명`,
a.`회원아이디` = nm.`회원아이디`
;
문제는 wn_novel 테이블은 총 1,002 건인데 반해 eidset 테이블은(회원아이디) 329 건(유일한 값) 밖에 되지 않아 유일한 값을 넣을 수가 없습니다. kidset 테이블은(작가명) 1,372 건(유일한 값)이므로 충분히 유일한 값 입력이 가능합니다.
eidset 테이블의 eid 컬럼값이 유일하도록 1,002 건 이상 데이터 추가 후 위의 쿼리들을 수행한다면 정상 처리될 것으로 여겨집니다.
● 개인 사정으로 24~26일(다음 주 월요일)까지 자리를 비웁니다. 질문 남겨주시면 차주 화요일 이후로 꼭 답변드리도록 하겠습니다. 양해부탁드립니다 감사합니다.
AWS 배포 성능테스트
0
7
0
76강 2분33초 내용 오류
0
22
1
3-13 리텐션 과제 제출합니다
0
25
2
인덱스 강의 혹은 해당 강의 전 듣어야 하는 사전강의 문의
0
21
2
3-13. 리텐션 연습과제 제출합니다.
0
27
1
ordered_at, paid_at 과 같이
0
27
1
기본편 오타 제보 드립니다.
0
33
1
노션링크가 접근되지 않습니다.
0
35
1
Boolean 컬럼 인덱스와 Cardinality에 따른 실행 계획에 대하여
1
53
1
18번 문제 질문
0
38
1
최종 과제 제출
0
50
3
Weekly Retention 과제 작성하였습니다.
0
53
2
[실습] WHERE문이 사용된 SQL문 튜닝하기 - 2
0
52
2
JWT토큰 발급 시, subject 값을 다양하게 넣어서 여러 개의 토큰을 만드는 이유
0
45
2
[실습] 인덱스 직접 설정해보기/성능 측정해보기
0
54
2
관계도출부분 질문입니다.
0
37
1
docker 마지막 실습(app(flask) + mysql) 연동 과정
1
55
2
[스토리 그 자체, 실적 테이블](9:51)max_recursive_iterations
1
607
2
urlcodemap 쿼리 파일 확인요청
1
340
2
[공유][대사와 액션, 회차정보테이블]contents2 생성관련
1
444
2
[주인공과 등장인물의 집합체,웹소설정보테이블]wn_novel테이블 생성
1
277
1
[ERD로 보는 스토리와 테이블이라는 등장인물]태그정보 테이블 설계관련
1
303
1
[공유][워크밴치사용관련]한글깨짐
1
666
1
[가상데이터 생성]
1
244
1

