본문 바로가기

Database31

MySQL, MariaDB: GROUP_CONCAT GROUP_CONCAT GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val] [LIMIT {[offset,] row_count | row_count OFFSET offset}]) 📌 GROUP_CONCAT 여러 개의 Row 데이터를 String으로 묶어서 가져오는 경우 사용 DISTINCT: 중복 제거 ORDER BY: 정렬하여 가져옴 SEPARETOR: 기본 구분자는 ',' 이지만 SEPARETOR로 커스텀 가능 (ex1. SEPARETOR ', ') (ex2. SEPARETOR '&') DISTINCT - OR.. 2024. 1. 31.
MySQL, MariaDB: 한 컬럼에 있는 문자열(String)을 SPLIT하여 여러 개의 행으로 만들기 한 컬럼에 있는 문자열(String)을 split하여 여러 개의 행으로 만들기 SELECT numTable.num AS num , SUBSTRING_INDEX(SUBSTRING_INDEX(mainTable.str, ',', numTable.num),',',-1) AS mainContents FROM ( SELECT @v_row := @v_row+1 AS num FROM INFORMATION_SCHEMA.COLUMNS ict , (SELECT @v_row := 0) gen ) numTable JOIN ( SELECT 'a,b,c,d,e,f,g' AS str ) mainTable ON CHAR_LENGTH(mainTable.str) - CHAR_LENGTH(REPLACE(mainTable.str,',',''.. 2024. 1. 31.
[MariaDB] 대용량 EXCEL 파일을 CSV 파일로 변환하여 DB에 INSERT 하기 내 기준 굉장히 많은 양의 데이터였던 약 20만 건의 데이터 .. 이 엑셀 파일을 어떻게 효율적으로 DB에 넣을 수 있을 지 고민하게 되었다. 처음에는 프론트 단에서 파일을 스트링으로 읽고 배열에 나누어 담아 백 단으로 보내는 방법을 생각하고 구현했다. 나의 부족한 그램은 버티지 못하고 STS가 굉장히 힘들어했다 !!! 그래서 열심히 구글링 하고 찾아낸 방법 ! 파일을 저장하고 저장 된 파일을 읽어와서 DB에 저장하기 !! MyBatis xml 작성 예시 LOAD DATA LOCAL INFILE #{FILE_PATH} INTO TABLE ${TBL_NM} COLUMNS TERMINATED BY '|' IGNORE 1 ROWS 저장된 곳의 파일 주소, 입력할 테이블 이름, 컬럼 구분자 설정해주면 대용량 데.. 2023. 7. 4.
프로그래머스 : 조건에 맞는 사용자와 총 거래금액 조회하기 조건에 맞는 사용자와 총 거래금액 조회하기 - 프로그래머스 코딩테스트 연습 LV.3 - USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 1. 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 2. 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 3. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요. 1. WHERE 절에 STATUS='DONE', WRITER_ID로 그룹핑, HAVING 절에 SUM(PRICE) >= 700000 2. USER 테이블과 JOIN, 조회할 정보 SELECT 절에 작성 3. ORDER BY 총거래금액 ASC SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) TOTAL_SALES FROM USED_GOO.. 2023. 3. 23.
프로그래머스 : 조건에 맞는 사용자 정보 조회하기 프로그래머스 : 조건에 맞는 사용자 정보 조회하기 - 프로그래머스 코딩테스트 연습 LV.3 - USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 1. 중고 거래 게시물을 3건 이상 등록한 사용자의 2. 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 3. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 4. 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 5. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요. 1. 중고 거래 게시물글 3건 이상 등록한 사용자 : WRITER_ID 로 그룹 지어 COUNT > 2 2. USER 테이블의 WHERE 절에 USER테이블의 USE.. 2023. 3. 22.
프로그래머스 : 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 - 프로그래머스 코딩테스트 LV3 연습문제 - USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 1. 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 3. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 2. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 1. 조회수가 가장 높은 게시물은 하나만 존재합니다. 1. 조회수가 가장 높은 게시물은 하나만 존재 : 조회수 정렬 후 LIMIT 1 로 조회수가 가장 높은 게시물의 ID를 가져온다. 2. .. 2023. 3. 20.