[프로그래머스] 입양 시각 구하기(2)
·
프로그래밍/SQL
소요시간 :  19분사용한 풀이법 : SET, 서브쿼리, GROUP BY풀이 과정1. 0-23시까지 모든 시간을 표시하기 위한 @hour 변수 선언2. -1로 초기값을 준 뒤, +1을 해가며 hour이 23이 될 때 까지 진행3. 서브쿼리에선 datetime의 시각이 hour와 동일한 경우에 그룹화 하여 카운트를 진행 작성 코드set @hour := -1;select (@hour := @hour+1) as HOUR,ifnull((select count(animal_id) from animal_outs where hour(datetime) = @hour group by hour),0) as COUNTfrom animal_outswhere @hour  피드백처음에는 그냥..
[프로그래머스] 서울에 위치한 식당 목록 출력하기
·
프로그래밍/SQL
SELECT A.REST_ID, A.REST_NAME, A.FOOD_TYPE, A.FAVORITES, A.ADDRESS, ROUND(AVG(B.REVIEW_SCORE),2) AS SCOREFROM REST_INFO A JOIN REST_REVIEW B ON A.REST_ID = B.REST_IDWHERE A.ADDRESS LIKE "서울%"GROUP BY B.REST_IDORDER BY SCORE DESC, A.FAVORITES DESC소요시간 :  14분사용한 풀이법 : JOIN, GROUP BY풀이 과정1. 두 테이블을 REST_ID를 통해 JOIN2. 식당 주소가 서울로 시작하는 곳을 조건으로 거르기3. 같은 식당끼리 그룹화4. 해당 식당의 점수들을 평균내기5. ROUND()함수를 통해 소수점 셋째..
[프로그래머스] 과일로 만든 아이스크림 고르기
·
프로그래밍/SQL
소요시간 :  13분사용한 풀이법 : INNER JOIN풀이 과정1. 주문 정보 테이블에 주 성분 테이블을 Inner join2. 각각의 테이블에서 문제가 요구한 조건은 WHERE 절을 통해 충족  작성 코드SELECT FIRST_HALF.FLAVORFROM FIRST_HALFJOIN ICECREAM_INFO ON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVORWHERE FIRST_HALF.TOTAL_ORDER > 3000 AND ICECREAM_INFO.INGREDIENT_TYPE LIKE 'fruit%'; 피드백JOIN을 쓰면 되는걸 알면서도 SELECT 섹션에 있는 문제니까 join 안써도 되겠지!하고 오기부리다가 결국 JOIN 썼다.오기는 똑똑한 사람만 부려야 된다는 걸 ..
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기
·
프로그래밍/SQL
소요시간 :  9분문제 유형 : SELECT, UNION ALL풀이 과정1. 각각의 테이블에서 원하는 데이터를 선택2. UNION ALL 을 통해 중복을 유지하면서 통합3. 기준에 맞게끔 정렬 작성 코드SELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d") AS SALES_DATE,PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ONLINE_SALEWHERE SALES_DATE LIKE '2022-03-__'UNION ALLSELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d") AS SALES_DATE,PRODUCT_ID, NULL, SALES_AMOUNTFROM OFFLINE_SALEWHERE SALES_DATE LIKE '2022-03-__'..
[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기
·
프로그래밍/SQL
소요시간 :  7분문제 유형 : SELECT풀이 과정1.  WHERE 조건을 통해서 3월생 찾기1.1 SQL 날짜 함수 이용1.2 LIKE 이용 작성 코드SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,"%Y-%m-%d") AS DATE_OF_BIRTHFROM MEMBER_PROFILEWHERE GENDER = 'W'AND TLNO IS NOT NULL AND # MONTH(DATE_OF_BIRTH)= 3 //날짜 함수를 이용하는 방법 # DATE_OF_BIRTH LIKE '%-03-%' //LIKE의 % 이용하는 방법 DATE_OF_BIRTH LIKE'____-03-__' //LIKE의 _ 이용하는 방법ORDE..
[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기
·
프로그래밍/SQL
소요시간 :  8분문제 유형 : SELECT, GROUP BY 풀이 과정1. USER_ID와 PRODUCT_ID로 그룹화2. 동일한 요소들끼리 묶이게 됨3. HAVING을 통해 USER_ID든 PRODUCT_ID든 그 수가 2 이상인 것들을 탐색 작성 코드SELECT USER_ID,PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID,PRODUCT_IDHAVING COUNT(PRODUCT_ID)>1ORDER BY USER_ID ASC, PRODUCT_ID DESC; 피드백GROUP BY의 실행이 정확히 어떤 식으로 이루어지는지 잘 몰라서 집계함수를 써야되는 것을 알고있음에도 불구하고 좀 헤맸음.다른것들은 몰라도 중요한 구문들은 확실이 이해하고 암기해야함을 또 다시 느낀 하루..
[프로그래머스] 12세 이하인 여자 환자 목록 출력하기 문제
·
프로그래밍/SQL
소요시간 :  6분문제 유형 :  SELECT작성 코드SELECT PT_NAME, PT_NO, GEND_CD, AGE, ifnull(TLNO,'NONE') TLNOFROM PATIENTWHERE AGE  피드백처음엔 아무 생각 없이SELECT *로 작성했는데 후에 문제를 읽어보니 출력하고자 하는 컬럼의 순서가 테이블에 제시된 순서와 달랐다. 문제를 꼼꼼히 먼저 읽어보고 풀이를 시작하는 습관을 들이자.다른 부분에서는 크게 어려움이 없었으나, null일 경우 none을 출력하게끔 하는 방법을 몰라 살짝 당황했다.해당 부분의 문법을 확실하게 기억해두고 다음에 문제에 나오면 유용하게 써먹자!!
[SQL] JOIN 구문
·
프로그래밍/SQL
JOIN을 통해 두 개 이상의 테이블을 연결해서 원하는 결과를 만들어 낼 수 있다. 이 때 테이블의 조인을 위해서는 기본키와 외래키가 연결되어야 하며, 이를 일대다 관계라고 한다. JOIN의 종류에는 아래와 같은 것들이 있다.INNER JOIN(내부 조인) : 두 테이블에서 공통된 값을 가지는 행들을 반환OUTER JOIN(외부 조인) : 두 테이블에서 공통된 값을 가지지 않는 행들도 반환LEFT OUTER JOIN : 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 왼쪽 테이블과 공통된 값을 가지는 행들을 반환RIGHT OUTER JOIN :  오른쪽 테이블의 모든 행과 왼쪽 테이블에서 오른쪽 테이블과 공통된 값을 가지는 행들을 반환FULL OUTER JOIN : 두 테이블에서 모든 값을 반환CROSS JO..
[SQL] DCL 구문
·
프로그래밍/SQL
SQL에는 DML, DDL, DCL, TCL구문으로 분류된다.DML 구문- 데이터 조작 언어 - 테이블의 행에 사용하는 구문이므로 테이블 정의가 선행되어야 함- SELECT, INSERT, UPDATE, DELETE가 여기에 속함- ROLLBACK, COMMIT 가능DDL 구문- 데이터 정의 언어- 데이터 베이스 개체(데이터베이스, 테이블, 뷰, 인덱스)를 생성, 삭제, 변경- CREATE, DROP, ALTER가 여기에 속함- ROLLBACK, COMMIT 불가능DCL 구문- 데이터 제어 언어- 사용자에게 어떠한 권한을 부여하거나 빼앗을 때 사용- GRANT, REVOKE- DDL구문과 마찬가지로 ROLLBACK, COMMIT 불가능TCL 구문- 트랜잭션 제어 언어- 데이터의 보안, 무결성, 회복, 병..
[SQL] DDL 구문
·
프로그래밍/SQL
SQL에는 DML, DDL, DCL, TCL구문으로 분류된다.DML 구문- 데이터 조작 언어 - 테이블의 행에 사용하는 구문이므로 테이블 정의가 선행되어야 함- SELECT, INSERT, UPDATE, DELETE가 여기에 속함- ROLLBACK, COMMIT 가능DDL 구문- 데이터 정의 언어- 데이터 베이스 개체(데이터베이스, 테이블, 뷰, 인덱스)를 생성, 삭제, 변경- CREATE, DROP, ALTER가 여기에 속함- ROLLBACK, COMMIT 불가능DCL 구문- 데이터 제어 언어- 사용자에게 어떠한 권한을 부여하거나 빼앗을 때 사용- GRANT, REVOKE- DDL구문과 마찬가지로 ROLLBACK, COMMIT 불가능TCL 구문- 트랜잭션 제어 언어- 데이터의 보안, 무결성, 회복, 병..
[SQL] DML 구문
·
프로그래밍/SQL
SQL에는 DML, DDL, DCL, TCL구문으로 분류된다.DML 구문- 데이터 조작 언어 - 테이블의 행에 사용하는 구문이므로 테이블 정의가 선행되어야 함- SELECT, INSERT, UPDATE, DELETE가 여기에 속함- ROLLBACK, COMMIT 가능DDL 구문- 데이터 정의 언어- 데이터 베이스 개체(데이터베이스, 테이블, 뷰, 인덱스)를 생성, 삭제, 변경- CREATE, DROP, ALTER가 여기에 속함- ROLLBACK, COMMIT 불가능DCL 구문- 데이터 제어 언어- 사용자에게 어떠한 권한을 부여하거나 빼앗을 때 사용- GRANT, REVOKE- DDL구문과 마찬가지로 ROLLBACK, COMMIT 불가능TCL 구문- 트랜잭션 제어 언어- 데이터의 보안, 무결성, 회복, 병..