전체 글

오늘의 문제. 한국 도시 중에 인구가 100만이 넘는 도시를 조회하여 인구순으로 내림차순하세요. [힌트] 테이블명: City / 컬럼명: name, population 오름차순, 내림차순에 대해서는 배웠지만 까먹은 상태였다. 하지만 모르면 배우면서 하면 되니까 문제없음! - 일단 나의 접근 방식은 이러하다. ① 도시명(name)을 조회하는 것이 궁극적인 목적 ② "도시" 테이블에서 추출하면 되겠지? ③ where 조건에서, 인구가 100만이 넘는 것을 설정해주고! ④ 마지막, 내림차순으로 정리하면 될 것이야. (내림차순 하는 방법은 까묵..) == 한국 도시 중에 인구가 100만이 넘는 도시를 조회하여 인구순으로 내림차순하세요. [힌트] 테이블명: City / 컬럼명: name, population ==..
== country 테이블에서 중복을 제거한 Continent를 조회하세요== 일단, 중복을 제거하는 데에 쓰이는 함수에 대해서 알아보면 끝나는 간단한 문제이다. 예를 들어서, 구성원들의 나이를 추출하고 싶을 경우 SELECT AGE FROM MEMBER; 으로 간단히 추출할 수 있지만 이럴 경우 중복되는 나이들이 겹겹이로 모두 출력될 것이다. 이럴 때 쓰는게 뭐다? DISTINCT다! -- 1. country 테이블에서 중복을 제거한 Continent를 조회하세요. SELECT DISTINCT(Continent) FROM country 이렇게 되면, 중복되는 나이는 제거되고 노출되지롱! 오늘은 좀 쉬엄쉬엄 가고 싶으니 간단한 문제로 마무리 :D
[다음문제] 아이디 'jhw1010' 유저가 보낸 시나리오 타입별 알림톡 발송건수를 계산하세요. ★힌트 (Group by) 사용해서 isSystem이 N/Y로 구분! 단, 시스템 발송건은 제외 (ab_alimtalk_tran_info의 isSystem이 'Y'일 경우 제외) 일단 알림톡 발송 건수를 계산하락 했으니, 실질적으로 추출하고 싶은 컬럼은 totalcount. 그리고 어느 테이블에서 꺼낼 것이냐 했을 때, ab_alimtalk_tran_info가 맞다. 그 다음 조건 1번은 jhw1010 유저가 보냈야하고 그 다음은 시스템 발송건은 제외가 되어야 한다. 그리고 마지막으로 "타입별" > 알림톡 발송건수를 계산해야 하니 타입별을 Group by 하는 것으로 생각했다. NOT NULL 은 NULL값을..
JOIN 문제일 것이라 예상 중. 납부 방법이 등록되어 있는 유저들의 아이디! 와 요금 관리자명을 불러오라는 것은 유저 정보와 PAYMENT_METHOD의 조인의 결과를 추출하는 문제가 아닐까 싶다. 1. 납부방법이 등록되어 있는 유저들의 아이디와 요금관리자명을 불러오세요. (요금관리자가 NULL일 경우 제외) SELECT a.userId, b.billingAdmin FROM ab_user a INNER JOIN ab_payment_method b ON a.userSeq = b.userSeq WHERE billingAdmin IS NOT NULL; 해석) 유저 ID는 ab_user 테이블에서 가져오는 것이 맞고, 요금관리자명(billingAdmin)은 ab_payment_method 테이블에서 불러오는 ..
상품명과 상품타입 테이블과 탈퇴 유저 정보가 있는 테이블을 조인하는 문제일 것이야. (상품명= 시나리오명) @ab_scenario @ab_user_withdrawal type, scenarioName SQL 풀이 -- FROM 과 JOIN 은 테이블을 불러오는 것 -- SELECT scenarioName, type FROM ab_scenario a LEFT JOIN ab_user_withdrawal b ON a.userSeq = b.userSeq WHERE b.userId = 'rye0220'; 일단, 탈퇴한 rye0220유저가 사용했던 시나리오명과 타입을 구해야 하므로, 보여주고 싶은 정보를 SELECT에 기재하고, 일단 이 보여주고 싶은 정보가 있는 테이블을 FROM 뒤..
오늘의 문제 두둥. 일단, 평균 발송건수를 추출해야하니 합계에 대한 접근은 아닐 것이고! (count는 사용 x) 그렇다면 평균값을 구하는 조건식을 사용하면 될 것 같다. 여기서 사용되는 조건식은 avg, group by 정도가 아닐까 생각하고 접근해보자. 나의 오답 (언제쯤 제대로 된 쿼리를 짤 수 있을 것인가) 일단 "월별 평균 발송건수"에 집중해보면, 월 발송일자와 발송건수에 대한 평균을 보여주겠다고 정의하고그 다음 어느 테이블에서 DB를 추출할지 결정한다. 그 다음 WHERE 절을 통해 조건식을 설정하는데, 2022년이라는 설정이 있으니 YEAR(sentDate) = 2022가 성립이 되는 것. 마지막으로 "월별" 이니, month 기준으로 GROUPBY를 실행한다! 이렇게 해석해 보면, 엄청 어..
1) 유저중 이메일 도메인이 infobank.net인 유저의 이름과 이메일 주소를 불러오세요. SELECT name, email FROM ab_user WHERE email='infobank.net'; => 라고 썼다. 하지만 '='은 정확히 값이 일치할 때 사용되는 조건이고 포함되는 조건을 검색할 때는 LIKE를 사용해야한다는 것을 오늘 배움! 따라서 SELECT name, email FROM ab_user WHERE email like '%infobank.net'; 2) 2022년 설문조사 월별 평균 발송건수를 계산하세요. >> 이건 공부 좀 해야해요.. 아마 count, average, group by를 사용하면 될 것 같은데 오늘의 체력과 정신력으로는 여기까지밖에 못 하겠음.
궁금했던 점 FROM 다음에 왜 ab_kakao_as_receipt 테이블을 기준 컬럼으로 잡고 LEFT JOIN을 하는지 이해가 안 갔는데, 접수건수는 무조건 보여줘야 하는 항목이기에 접수 테이블을 기준값으로 잡고, product을 LEFT JOIN 했음을 알 수 있었다. (고마워요 YJ ♥) ON은 테이블끼리 관계를 맺게 하는 거고, 매칭 시켜주는 역할을 하는 정도로 생각하면 될 것 같다. 오늘의 2문제도 열심히 풀어봐야지!
우지이
어디까지 닿을까 나의 기획