일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Tree
- 코딩테스트
- SQL
- 파이썬
- Binary Search
- 코테
- Data Structure
- geometry
- bit manipulation
- database
- Stack
- two pointers
- Counting
- Binary Tree
- simulation
- greedy
- sorting
- 자바
- array
- string
- Matrix
- Class
- java
- hash table
- Method
- implement
- Math
- dynamic programming
- 구현
- Number Theory
- Today
- Total
목록SQL (39)
코린이의 소소한 공부노트
1. Input 1) Table: Employees (pk: (emp_id, event_day, in_time)) 2. Output 1) 날짜 별로 emp_id가 일한 시간을 출력 - 일한 시간: out_time - in_time - 출력 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/04/17) select event_day as day, emp_id, total_time from ( select event_day, emp_id, sum(out_time-in_time) as total_time from Employees group by event_day, emp_id ) e;
1. Input 1) Table: DailySales (pk: 없음) 2. Output 1) 각 날짜와 이름별로 lead_id와 partner_id의 수를 센 결과를 출력 - 중복은 세지 않는다. - 출력 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/04/15) select a.date_id, a.make_name, a.unique_leads, b.unique_partners from (select date_id, make_name, count(distinct lead_id) as unique_leads from DailySales group by date_id, make_name) a, (select date_id, make_name, count(distinct part..
1. Input 1) Table: Tweets (pk: tweet_id) 2. Output 1) content의 길이가 15보다 큰 것의 tweet_id를 출력 - 출력 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/04/15) select tweet_id from( select tweet_id, length(content) as len from Tweets ) a where len>15; 2) where절을 서브 쿼리로 넣어본 코드(2023/04/15) select tweet_id from( select tweet_id, length(content) from Tweets where length(content)>15 ) a; 3) where절로 서브 쿼리를 옮겨본 코드(20..
1. Input 1) Table: Employees (pk: id) 2) Table: EmployeeUNI (pk: (id, unique_id)) 2. Output 1) unique_id와 이름을 출력한다. - unique_id가 없을 경우 null을 출력한다. - 출력 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/04/11) select u.unique_id, e.name from Employees e left outer join EmployeeUNI u on e.id = u.id
1. Input 1) Table: Views (pk = 없음) 2. Output 1) 자신의 글을 한번 이상 본 모든 작가들의 id를 출력 - id는 오름차순으로 정렬한다. 3. Example 4. Code 1) 첫 코드(2023/04/06) select author_id as id from ( select author_id from Views where author_id = viewer_id group by author_id ) a order by id;
1. Input 1) Table: Sales (pk = (sale_id, year)) 2) Table: Product (pk = product_id) 2. Output 1) Sales에 있는 판매 목록마다 제품 이름, 연도, 가격을 출력 - 출력 순서는 상관없다. 3. Example 4. Code 1) 첫 코드(2023/04/04) select p.product_name, s.year, s.price from Sales s, Product p where s.product_id=p.product_id
1. Input 1) Table: ActorDirector (pk = timestamp) 2. Output 1) 최소 3번 이상 협업한 배우와 감독의 아이디를 출력 - 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/04/04) select actor_id, director_id from ( select actor_id, director_id, count(*) cnt from ActorDirector group by actor_id, director_id ) a where cnt>=3; - 너무너무 느림 2) having절을 이용해본 코드(2023/04/04) select actor_id, director_id from ActorDirector group by actor_id..
1. Input 1) Table: Project (pk = (project_id, employee_id)) 2) Table: Employee (pk = employee_id) 2. Output 1) 각 프로젝트별로 참여하는 모든 직원들의 평균 경력을 소수점 2자리까지 출력하기 - 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/04/04) select project_id, round(avg(experience_years),2) as average_years from Project p, Employee e where p.employee_id=e.employee_id group by project_id;
[예시에 쓰이는 테이블] # student_info에서 idols별로 몇 명이 좋아하는지 추려서 # 아이돌 이름이랑 좋아하는 학생수를 구한 다음 # 좋아하는 학생수에 따라 분류해줘 select *, case when cnt>40 then '인기 아이돌' else '유명 아이돌' end as '아이돌 분류' from ( select idols, count(*) cnt from student_info group by idols ) idolcount; # from절에 사용한 서브쿼리의 이름 # 결과 idolscnt아이돌 분류 ITZY30유명 아이돌 G-idle 31유명 아이돌 LESSERAFIM 54인기 아이돌 IVE44인기 아이돌 NMIXX31유명 아이돌 New Jeans49인기 아이돌 Aespa61인기 아..
[예시에 쓰이는 테이블] # first name이 J로 시작하는 사람들 찾기 select * from name where first like 'J%'; # 결과 person_idfirstmiddlelast 1JennyJeongSmith 5JerryParkMiller # last name이 s로 끝나는 사람들 찾기 select * from name where last like '%s'; # 결과 person_idfirstmiddlelast 2AliceScarletRogers 7LizyKangJones # middle name이 4글자인 사람들 찾기 select * from name where middle like '____'; // _ 4개 # 결과 person_idfirstmiddlelast 5Jerry..