백엔드 부트캠프[사전캠프]/문제풀이 17

[SQL 달리기반 레벨 5] 🦚 예산이 가장 큰 프로젝트는?

문제 : 🦚 예산이 가장 큰 프로젝트는? 1. 각 직원이 속한 부서에서 가장 높은 월급을 받는 직원들만 포함된 결과를 조회하는 SQL 쿼리를 작성해주세요.a. 출력 결과에는 직원의 이름, 부서, 그리고 월급이 포함되어야 합니다.b. 기대 결과NameDepartmentSalaryAliceHR5000FrankIT7200EveSales55002. 직원이 참여한 프로젝트 중 예산이 10,000 이상인 프로젝트만을 조회하는 SQL 쿼리를 작성해주세요.a. 출력 결과에는 직원 이름, 프로젝트 이름, 그리고 프로젝트 예산이 포함되어야 합니다.b. 답지 오류로 일부 수정Name ProjectName BudgetAlice Alpha 10000Bob Alpha10000Charlie Beta 15000Frank Beta ..

[SQL 달리기반 레벨 1] 🎨 데이터 속 김서방 찾기

문제 : 🎨 데이터 속 김서방 찾기상황: 여러분들은 스파르타코딩클럽의 분석가로 취직했습니다. DBeaver를 테스트 해볼 겸 “김”씨로 시작하는 이용자들 수를 세어 보기로 했습니다.name_cnt: “김”씨 성을 가지고 있는 교육생의 수따로 설명할 코드가 없어 정답만 표시하겠다. SELECT count(*) as name_cntFROM users where name Like "김**" 이 문제에 대합 해답을 포스터 한 거 같았는데. 까먹었나보다.. 게시글에 없길래 올렸다.

[SQL 달리기반 레벨 5] 🏆 가장 많이 팔린 품목은?

문제 : 🏆 가장 많이 팔린 품목은?1. 각 고객이 구매한 모든 제품의 총 금액을 계산하고, 고객 이름, 총 구매 금액, 주문 수를 출력하는 SQL 쿼리를 작성해주세요. CustomerNameTotalAmountOrderCountAlice28002Bob11502Charlie8002> 답안에 오류가 있어 따로 수정.2. 각 제품 카테고리별로 가장 많이 팔린 제품의 이름과 총 판매량을 조회하는 SQL 쿼리를 작성해주세요.CategoryTop_ProductTotalSoldElectronicsLaptop3HomeCoffee Maker3 1. 알고리즘1) 각 고객이 구매한 모든 제품의 총 금액을 계산하고, 고객 이름, 총 구매 금액, 주문 수를 출력- 1단계: 먼저 Orders 와 Product 테이블을 합친다..

[SQL 달리기반 레벨 4] 💸 가장 높은 월급을 받는 직원은?

문제 : 💸가장 높은 월급을 받는 직원은?1. 각 직원의 이름, 부서, 월급, 그리고 그 직원이 속한 부서에서 가장 높은 월급을 받고 있는 직원의 이름과 월급을 조회하는 SQL 쿼리를 작성해주세요.기대사항 :부서별로 평균 월급이 가장 높은 부서의 이름과 해당 부서의 평균 월급을 조회하는 SQL 쿼리를 작성해주세요.기대사항:1. 개념 배우기WITH AS 문- 공통 테이블 표현식(CTE, Common Table Expression) 을 정의할 때 사용되며, 서브쿼리를 깔끔하게 정리하고 재사용할 수 있게 해준다.- WITH 안에서 일시적인 테이블(CTE) 을 만들고, 메인 SELECT 문에서 이를 참조하는 방식.- 복잡한 쿼리를 쪼개어 가독성을 높이고, 동일한 서브쿼리를 여러 번 실행하는 비효율을 방지.WI..

[SQL 달리기반 레벨 4] 🛒 단골 고객님 찾기

문제 🛒 단골 고객님 찾기1. 고객별로 주문 건수와 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요. a. 출력 결과에는 고객 이름, 주문 건수, 총 주문 금액이 포함되어야 합니다. 단, 주문을 한 적이 없는 고객도 결과에 포함되어야 합니다.b. 기대결과CustomerNameOrderCountTotalSpentAlice2450Bob2280Charlie150David1400 2. 나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.a. 기대결과CountryTop_CustomerTop_SpentUSAAlice450UKBob280CanadaDavid4001. 알고리즘1) 고객별로 주문 건수와 총 주문 금액을 조회- 고객별로 GROUP BY를 해..

[SQL 달리기반 레벨 3] 💳 이용자의 포인트 조회하기

문제: 💳 이용자의 포인트 조회하기이번에는 이용자들 별로 획득한 포인트를 학생들에게 이메일로 보내려고 합니다. 이를 위한 자료를 가공해봅시다. 특히 users 테이블에는 있으나 point_users 에는 없는 유저가 있어요. 이 유저들의 경우 point를 0으로 처리합시다.조건user_id: 익명화된 유저들의 아이디 email: 유저들의 이메일 point: 유저가 획득한 포인트 users 테이블에는 있지만 point_users에는 없는 user는 포인트가 없으므로 0 으로 처리 포인트 기준으로 내림차순 정렬1. 알고리즘- Users 테이블 기준으로 데이터를 다 가져와야한다. - point_users에 있는 point 에 만약 값이 null 이면 0으로 바꾸어주기.- 포인트 기준 내림차순.  2. SQL..

[SQL 달리기반 레벨 2] 📆 날짜별 획득포인트 조회하기

문제 : 📆 날짜별 획득포인트 조회하기사용자들이 잘 활동하고 있는지 보고자 합니다. 포인트가 많을수록 활동을 잘하고 있다고 생각 할 수 있습니다.날짜별로 획득한 포인트가 점점 늘어나는지 줄어드는지 확인해 봅시다.조건- created_at: 익명화된 유저들의 아이디(varchar255)- average_points: 유저가 획득한 날짜별 평균 포인트(int), 반올림 필수1. 알고리즘- 날짜별로 포인트가 늘어나는지를 알아야한다- 먼저, created_at 열을 보면 시간, 분, 초 까지 나온걸 알 수 있다.- 이걸 조건에 맞는 dt 타입으로 바꾸어주고- creted_at 열 별로 avg_points 를 계산하여야한다. > groupby- 반올림도 하여야한다.반올림 : ROUND(숫자, 자리수)올림 : C..

[내일배움캠프-사전캠프 문제풀이] JAVA 보너스 문제 "가위바위 보"

오늘은 문제가 술술 풀려서 나름 재밌었다.가위바위보를 만들었던 게 2-3년전 이었던 거 같은데 이렇게 여러 조건, 함수를 주면서 푸니 더 색다른 거 같다.보너스 문제: 가위 바위 보5번의 가위바위보 게임을 해서 승리한 횟수 상당의 상품을 받아가는 게임을 만들어봐요1. 5번의 가위바위보를 진행합니다.2.유저는 매 판마다 “가위”, “바위”, “보” 중 하나를 입력합니다.- 잘못된 입력을 받았다면 잘못된 입력입니다! 를 출력해주세요.3.컴퓨터는 가위 , 바위, 보 중 랜덤하게 하나를 낼 수 있습니다.4.매판마다 진행한 가위 바위 보의 승패에 대한 결과를 출력됩니다.5.5판을 모두 마치면 승리한 횟수에 걸맞는 경품을 획득할 수 있습니다.일단 조건들을 보아하니,1. 잘못된 입력을 확인2. 랜덤한 가위바위보 출력..

[내일배움캠프-사전캠프 문제풀이] JAVA 응용문제 3

[문제] 단어를 주어진 기회 안에 맞추는 게임을 만들어보세요1. 컴퓨터가 랜덤으로 영어단어를 선택합니다.- a. 영어단어의 자리수를 알려줍니다.- 랜덤한 영어단어를 선택할 수 있게끔 randomText()라는 함수 생성. public String randomText(){ Random random = new Random(); String[] list = { "airplane", "apple", "arm", "bakery", "banana", "bank", "bean", "belt", "bicycle", "biography", "blackboard", "boat", "bowl", "broccoli", "bus", "car", "carrot", "chair", "cherry",..

[내일배움캠프-사전캠프 문제풀이] JAVA 응용문제 1, 2

[1단계] 랜덤 닉네임 생성기import java.util.Random;class Main { public static void main(String[] args) { String[] box1 = {"기철초풍", "멋있는", "재미있는"}; String[] box2 = {"도전적인", "노란색의", "바보같은"}; String[] box3 = {"돌고래", "개발자", "오랑우탄"}; Random random = new Random(); int randomInt1 = random.nextInt(box1.length); int randomInt2 = random.nextInt(box2.length); int randomInt3 = random.nextInt(box3...