easy
오늘밤공부
2023. 7. 17. 10:54
2023. 7. 17. 10:54
🗓️ 문제 설명
- Views 테이블의 article_id, author_id, viewer_id, view_date는 각각 아티클ID, 작가ID, 독자ID, 읽은 날짜를 나타냅니다.
- Views 테이블은 기본키가 없고, 중복된 값이 있을 수 있습니다.
Column name |
Type |
article_id |
int |
author_id |
int |
viewer_id |
int |
view_date |
date |
❓문제
- 자신이 쓴 아티클을 최소 한 번이상 읽은 작가의 ID를 조회하는 SQL문을 작성해주세요.
- 결과는 id순으로 오름차순 정렬해주세요.
- 문제 예시
article_id |
author_id |
viewer_id |
view_date |
1 |
3 |
5 |
2019-08-01 |
1 |
3 |
6 |
2019-08-02 |
2 |
7 |
7 |
2019-08-01 |
2 |
7 |
6 |
2019-08-02 |
4 |
7 |
1 |
2019-07-22 |
3 |
4 |
4 |
2019-07-21 |
3 |
4 |
4 |
2019-07-21 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 7. 10. 11:03
2023. 7. 10. 11:03
🗓️ 문제 설명
- Activity 테이블의 user_id, session_id, activity_date, activity_type은 각각 유저ID, 세션ID, 활동일자, 활동종류를 나타냅니다.
- Activity에는 기본키가 없으며 중복값이 있을 수 있습니다.
- 활동종류(activity_type)에는 open_session(세션 시작), end_session(세션 끝), scroll_down(스크롤내림), send_message(메시지 발송)이 있습니다.
- 해당 테이블은 소셜 미디어 웹사이트에 대한 사용자 활동을 보여줍니다.
- 각 세션은 정확히 한 명의 사용자에게 속합니다.
Column name |
Type |
user_id |
int |
session_id |
int |
activity_date |
date |
activity_type |
enum |
❓문제
- 2019년 7월 27일을 포함한 날까지 30일 동안 일일 활성 사용자 수를 찾는 SQL 쿼리를 작성해주세요.
- 해당 날짜에 활동을 한 번 이상 수행한 사용자는 언젠가는 활동한 것입니다.
- 문제 예시
user_id |
session_id |
activity_date |
activity_type |
1 |
1 |
2019-07-20 |
open_session |
1 |
1 |
2019-07-20 |
scroll_down |
1 |
1 |
2019-07-20 |
end_session |
2 |
4 |
2019-07-20 |
open_session |
2 |
4 |
2019-07-21 |
send_message |
2 |
4 |
2019-07-21 |
end_session |
3 |
2 |
2019-07-21 |
open_session |
3 |
2 |
2019-07-21 |
send_message |
3 |
2 |
2019-07-21 |
end_session |
4 |
3 |
2019-06-25 |
open_session |
4 |
3 |
2019-06-25 |
end_session |
day |
active_users |
2019-07-20 |
2 |
2019-07-21 |
2 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 22. 11:00
2023. 6. 22. 11:00
🗓️ 문제 설명
- Project 테이블의 project_id, employee_id는 각각 프로젝트ID, 직원ID를 나타냅니다.
- Project_id, employee_id는 기본키이며, employee_id는 Employee 테이블의 외래키입니다.
Column name |
Type |
project_id |
int |
employee_id |
int |
- Employee 테이블의 employee_id, name, experience_years는 각각 직원ID, 직원이름, 경력 년수를 나타냅니다.
- Employee_id는 기본키입니다.
❓문제
- 각 프로젝트에 대한 모든 직원의 평균 경력 년수를 두 번째 자리에서 반올림하여 조회하는 SQL문을 작성해주세요.
- 문제 예시
Project
project_id |
employee_id |
1 |
1 |
1 |
2 |
1 |
3 |
2 |
1 |
2 |
4 |
Employee
employee_id |
name |
experience_years |
1 |
Khaled |
3 |
2 |
Ali |
2 |
3 |
John |
1 |
4 |
Doe |
2 |
project_id |
average_years |
1 |
2.00 |
2 |
2.50 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 15. 11:00
2023. 6. 15. 11:00
🗓️ 문제 설명
- Salary 테이블의 id, name, sex, salary는 각각 직원 ID, 직원 이름, 직원 성별, 직원 급여를 나타냅니다.
- Id는 테이블의 기본키입니다.
- Sex 열은 'm', 'f'값만 존재합니다.
Column name |
Type |
id |
int |
name |
varchar |
sex |
ENUM |
salary |
int |
❓문제
- 중간 임시 테이블 없이 단일 업데이트 문으로 직원 성별의 모든 'f'와 'm'값을 교환하는 SQL문을 작성해주세요.
- 단일 업데이트 문을 작성해야 하며, 이 문제에 대한 SELECT문을 작성하지 마세요.
- 문제 예시
id |
name |
sex |
salary |
1 |
A |
m |
2500 |
2 |
B |
f |
1500 |
3 |
C |
m |
5500 |
4 |
D |
f |
500 |
id |
name |
sex |
|
1 |
A |
f |
2500 |
2 |
B |
m |
1500 |
3 |
C |
f |
5500 |
4 |
D |
m |
500 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 13. 11:00
2023. 6. 13. 11:00
🗓️ 문제 설명
- 정수 x가 주어졌을 때, x가 회문이라면 true를 회문이 아니라면 false를 반환해주세요.
- 제한 사항
- 입출력 예시
x |
result |
121 |
True |
-121 |
False |
10 |
False |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 9. 11:00
2023. 6. 9. 11:00
🗓️ 문제 설명
- Sales 테이블의 sale_id, product_id, year, quantity, price는 각각 판매ID, 상품ID, 판매연도, 판매량, 단위당 가격을 나타냅니다.
- Sale_id, year은 기본키입니다.
- Product_id는 Product 테이블의 외래키입니다.
Column name |
Type |
sale_id |
int |
product_id |
int |
year |
int |
quantity |
int |
price |
int |
- Product 테이블의 product_id, product_name는 각각 상품ID, 상품명을 나타냅니다.
- Product_id는 기본키입니다.
Column name |
Type |
product_id |
int |
product_name |
varchar |
❓문제
- Sales 테이블의 각 판매ID에 대한 상품명, 판매연도, 단위당 가격을 보고하는 SQL문을 작성해주세요.
- 문제 예시
Sales
sale_id |
product_id |
year |
quantity |
price |
1 |
100 |
2008 |
10 |
5000 |
2 |
100 |
2009 |
12 |
5000 |
7 |
200 |
2011 |
15 |
9000 |
Product
product_id |
product_name |
100 |
Nokia |
200 |
Apple |
300 |
Samsung |
product_name |
year |
price |
Nokia |
2008 |
5000 |
Nokia |
2009 |
5000 |
Apple |
2011 |
9000 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 8. 11:00
2023. 6. 8. 11:00
🗓️ 문제 설명
- ActorDirector 테이블의 actor_id, director_id, timestamp는 각각 배우ID, 감독ID, 회차를 나타냅니다.
- timestamp는 기본키입니다.
Column name |
Type |
actor_id |
int |
director_id |
int |
timestamp |
int |
❓문제
- 배우가 감독과 최소 3번 함께 작업한 경우를 (actor_id, director_id)로 조회하는 SQL문을 작성해주세요.
- 문제 예시
actor_id |
director_id |
timestamp |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
3 |
1 |
2 |
4 |
2 |
1 |
5 |
2 |
1 |
6 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 6. 10:00
2023. 6. 6. 10:00
🗓️ 문제 설명
- 정수 배열 nums와 정수 target이 주어졌을 때, target과 nums 내의 두 숫자가 같아지는 숫자의 인덱스를 반환해주세요.
- 제한 사항
- 동일한 요소를 두 번 사용할 수 없음
- 각 입력에 정확히 하나의 솔루션이 있음
- 입출력 예시
nums |
target |
result |
[2, 7, 11, 15] |
9 |
[0, 1] |
[3, 2, 4] |
6 |
[1, 2] |
[3, 3] |
6 |
[0, 1] |
💻 코드
최종 코드
코드 풀이
다른 사람 풀이
더보기
풀이 1번
- d = {} : 숫자와 인덱스를 담을 딕셔너리 생성
- for i, j in enumerate(nums) : nums에서 인덱스와 값을 꺼내는 반복문 실행
- r = target - j : target에서 리스트 nums에서 꺼낸 값을 뺀 후 저장
- if r in d : return [d[r], i] : 만약 3번에서 저장한 r이 1번에서 생성한 딕셔너리 d에 있다면 r의 인덱스와 현재 값의 인덱스를 반환
- d[j] = i : 딕셔너리 d에 값과 인덱스를 key-value 형식으로 저장
오늘밤공부
2023. 6. 5. 11:00
2023. 6. 5. 11:00
🗓️ 문제 설명
- Cinema 테이블의 id, movie, description, rating은 각각 영화의 이름, 장르, 설명, 별점을 나타냅니다.
- id는 기본키이고, 별점은 [0, 10] 범위의 부동소수점 둘째자리입니다.
Column name |
Type |
id |
int |
movie |
varchar |
description |
varchar |
rating |
float |
❓문제
- 홀수 ID와 '지루하지 않은' 설명으로 영화를 보고하는 SQL문을 적성해주세요.
- 등급별로 내림차순으로 정렬된 결과를 반환해주세요.
- 문제 예시
id |
movie |
description |
rating |
1 |
War |
great 3D |
8.9 |
2 |
Science |
fiction |
8.5 |
3 |
irish |
boring |
6.2 |
4 |
Ice song |
Fantacy |
8.6 |
5 |
House card |
Interesting |
9.1 |
id |
movie |
description |
rating |
5 |
House card |
Interesting |
9.1 |
1 |
War |
great 3D |
8.9 |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 2. 11:00
2023. 6. 2. 11:00
🗓️ 문제 설명
- MyNumbers 테이블의 num은 중복을 포함한 숫자를 나타냅니다.
- num은 기본키입니다.
❓문제
- 단일 번호는 MyNumbers 테이블에 한 번만 나타난 번호입니다.
- 가장 큰 단일 번호를 조회하는 SQL문을 작성해주세요.
- 숫자가 하나도 없으면 null을 반환해주세요.
- 문제 예시
💻 코드
최종 코드
코드 풀이