오늘도SQL

우리 회사는 매주/ 매월 지표 분석을 하는데, 그때마다 어드민에서 원하는 특정 데이터값을 추출하는 게 쉽지않다. 그래서 SQL를 사용해서 기간별 특정 유저의 총 합계를 구하고 있다. 아래 내용은 내가 SQL 강의를 토대로 실제 쿼리를 작성하고 있는 방법이다. | 미션 -- Q1. 24년 3월 내 파트너 권한을 가진 모든 유저의 총 합계를 구하시오 -- 단, 파트너는 개인 파트너 및 비즈니스 파트너 두 가지 유형이 존재함 | 먼저 해야할 것 일단, 쿼리를 짜기 전에 먼저 확인해야할 것은 해당 테이블에 어떤 컬럼이 있는 지 확인을 해야한다. 이때는 LIMIT절을 사용해서 열 개의 ROW 정도만 확인한다. 그럼 컬럼에 어떤 항목들이 어떤 타입으로 입력되어 있는지 확인할 수 있다. SELECT * FROM 'U..
오늘의 문제. 한국 도시 중에 인구가 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값을..
상품명과 상품타입 테이블과 탈퇴 유저 정보가 있는 테이블을 조인하는 문제일 것이야. (상품명= 시나리오명) @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를 실행한다! 이렇게 해석해 보면, 엄청 어..
우지이
'오늘도SQL' 태그의 글 목록