2025/01 40

[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..

[내일배움캠프-사전캠프 07일차] SQL 강의

1. 4주차 3 강의 실습2) 음식점의 지역과 평균 배달시간으로 Segmentation 하기.- 단계별로 찾는다. 라고 생각하면 쉽다.- 1단계 - 식당이름, 시도, avg() 평균시간만 추출- 2단계 - 평균 배달시간 별로 그분화.일단은 GROUP BY 절을 사용할때,SELECT restaurant_name, SUBSTR(addr,1,2) as sido, avg(delivery_time)From food_orders fo group by 1,2sido이라는 열을 넣을지 안 넣을지 고민했다.restaurant_name만 기준으로 그룹화됨.SUBSTR(addr,1,2) as "지역"은 SELECT 문에서 사용되지만, GROUP BY에는 포함되지 않았기 때문에 그룹의 대표값(임의의 값)이 반환됨.즉, 같은 ..

[내일배움캠프-사전캠프 06일차] SQL 3주차, 4주차 강의

01. 3주차 3강의1) replacereplace(col,'현재값','바꿀값')- col 열의 '현재값'을 '바꿀값'으로 바꾸어달라라는 뜻2) substringsubstr(col, 시작위치, 글자수)- 여기서 시작위치는 보통의 코딩과 다르게 1부터 시작이다. (다른 코드에서는 0부터 카운트 되지만 sql은 다름)3) concatconcat('a','b','c', ...)- a와 b, c, ... 를 이어주는 함수.4) 실습실습 1) 서울 지역의 음식 타입별 평균 음식 주문 금액 구하기 (출력: 서울, 타입, 평균금액)SELECT SUBSTR(addr,1,2) as "시도", cuisine_type ,AVG(price)FROM food_orders fo WHERE addr LIKE '%서울%'GROUP ..

[창의문제풀기] 야구 스트라이크 문제

자바 문제를 풀다보니 갑자기 옛날에 파이썬으로 풀었던 스트라이크 문제를 해볼까? 라는 생각이 들었다.자세한 규칙은 챗GPT한테 정해달라했다.숫자 야구 규칙게임 목표상대가 정한 숫자(4자리의 숫자)를 맞히는 것.1. 각 숫자는 중복되지 않음.2. 각 자리는 0~9 사이의 숫자를 사용할 수 있음.3. 스트라이크와 볼의 정의- 스트라이크: 숫자와 위치가 모두 맞을 때.- 볼: 숫자는 맞지만 위치가 틀릴 때.게임 진행상대방은 비밀 숫자를 정함 (예: 123).플레이어는 숫자를 추측해서 말함 (예: 135).상대방은 "스트라이크"와 "볼"의 개수를 알려줌.예: 135를 말했을 때, 1 스트라이크(1), 1 볼(3).계속 추측하면서 정답을 맞출 때까지 반복.정답모든 숫자와 위치가 맞으면 (예: 123) "3 스트라..

[내일배움캠프-사전캠프 05일차] SQL 수업 듣기

1. Select, From, WhereSELECT 는 데이터를 가져온다는 명령어로, 조회하는 쿼리의 시작을 의미합니다.FROM 은 가져올 데이터 테이블을 지정하는 구문으로, 데이터베이스에서 원하는 테이블을 조회합니다.where 절은 데이터 필터링을 하기 위해 사용되며, 기본 구조는 select from 다음에 나옵다.- 컬럼에 별명을 주는 두 가지 방법이 있습니다. 첫 번째 방법은 컬럼명 뒤에 공백을 두고 별명을 적는 것이고, 두 번째 방법은 'as' 키워드를 사용하여 컬럼명 뒤에 별명을 붙이는 것입니다. 별명을 짓는데에는 언어나 특수문자에 따라 형태가 달라집니다.2. Between, In, LikeSQL에서 필터링 조건을 주기 위해 BETWEEN, IN, LIKE 구문 등이 있다.BETWEEN 구문은..

[내일배움캠프-사전캠프 문제풀이] 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",..

[내일배움캠프-사전캠프 04일차] 자바 공부

len 만해도 python에서는 len() 이런식만 해도 출력이 됐고, 문자열 * 숫자 하면 숫자만큼 문자열이 더해졌는데. 자바는 그런 게 안 된다.그렇다 보니 하나 하나 함수를 찾아보아야 한다.1. 문자열 반복  reapeatreapeat는 반복이다. 파이썬에서는 문자*숫자를 하면 숫자만큼 문자열이 더해졌지만. 자바에서는 없다.그리하여 reapeat 를 이용하여 반복을 해주어야한다. for문으로 구현할 수 있지만!for문보다는 함수가 간지나잖아요 ^ㅡ^char character = '-'; // 곱하고 싶은 문자int times = 4; // 반복 횟수// char을 String으로 변환하고 repeat 사용String result = String.valueOf(character).repeat(time..