일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- AB테스트
- DATE_SUB
- f-string
- 시각화
- ★
- 반복문
- 데이터시각화
- Join
- 태블로
- 가설검정
- 내배캠_학습기록
- 내일배움캠프
- SQLD
- Max
- Til
- python
- 선형회귀
- 다중공선성
- 리스트
- SQL
- 내일배움일지
- map
- 프로그래머스
- 한줄for문
- Leetcode
- 통계학
- 데이터전처리
- Set
- 이중for문
- 아티클스터디
- Today
- Total
목록SQL (27)
노력에는 지름길이 없으니까요
해결일언어레벨테스트명20240816SQLmedium 626. Exchange Seats 링크 : https://leetcode.com/problems/exchange-seats/description/ 내 코드-- 1) 전체 레코드 수가 홀수일 때 마지막 데이터는 바꾸지 않아도 됨-- -> id가 레코드 개수와 같을 때 -- 2) id가 홀수일 때 +1, id가 짝수일 때 -1 에 있는 데이터 출력-- SELECT-- CASE-- WHEN MOD(id,2)=0 THEN id-1-- WHEN ((MOD(id,2)=1) AND (id+1 != MAX(id))) THEN id+1-- ELSE id END id-- ,student-- FROM Seat-- ORDER ..
해결일언어레벨테스트명20240814SQLeasy1141. User Activity for the Past 30 Days I 링크 : https://leetcode.com/problems/user-activity-for-the-past-30-days-i/ 내 코드# Write your MySQL query statement belowSELECT activity_date day ,COUNT(DISTINCT user_id) active_users FROM Activity WHERE activity_date BETWEEN DATE_SUB('2019-07-27', INTERVAL 30 DAY)+1 AND '2019-07-27'GROUP BY activity_date DATE_SUB..
DATE_ADD() : 날짜 더하기DATE_ADD(기준날짜, INTERVAL)DATE_SUB() : 날짜 빼기DATE_SUB(기준날짜, INTERVAL)DATEDIFF() : 두 기간 사이의 일수 계산DATEDIFF(expr1, expr2)expr1 - expr2 ( expr1 : 종료일, expr2 : 시작일 ) 날짜 포맷에 시간이 포함되어 있는 경우, 시간은 계산에 포함하지 않는다. 날짜 범위에서 벗어나는 값을 입력하는 경우 NULL을 반환한다.TIMEDIFF() : 두 기간 사이의 시간 계산TIMEDIFF(expr1,expr2)expr1 - expr2 ( expr1 : 종료 시간, expr2 : 시작 시간 ) 시간 또는 날짜 범위에서 벗어난 값을 입력하는 경우 NULL을 반환한다.PERIOD_DIF..
해결일언어레벨테스트명20240812SQLeasy 1789. Primary Department for Each Employee 링크 : https://leetcode.com/problems/primary-department-for-each-employee/ 테스트 케이스에 말도 안되는 게 하나 껴있었는데... (22번!!!)토론 에리어에서는 결국 잘못된 데이터에 대해서도 대처할 수 있는 코드를 짜는 것도 능력이다. 내 실력이 아직 멀었구나 따위를 느끼는 중이다 다음에 다시 풀어봐야지...👊 베스트 코드# Write your MySQL query statement below(SELECT employee_id, department_idFROM EmployeeGROUP BY 1HAVING C..
해결일언어레벨테스트명20240812SQLmedium 178. Rank Scores 링크 : https://leetcode.com/problems/rank-scores/submissions/1352575700/ 중복 데이터 순위 세우기 (Dense_rank) 내 코드쉬운 문제긴 했는데 dense_rank 노트 남길겸, group by 후 결과 남길겸 작성한다. SELECT score, DENSE_RANK() OVER (ORDER BY score DESC) as `rank`FROM Scores 우선 다음 코드에 대한 결과는 이하와 같다.DENSE_RANK모든 데이터에 대해 순위를 매기되,중복된 값에 대해서 모두 동일한 순위로 처리를 하고그 다음 순위에는 중복된 데이터 개수가 영향을 끼치지 않..
해결일언어레벨테스트명20240809SQLeasy181. Employees Earning More Than Their Managers 링크 : https://leetcode.com/problems/employees-earning-more-than-their-managers/description/ 자신의 매니저보다 고연봉인 사람의 이름 출력 내 코드# Write your MySQL query statement belowSELECT e1.name Employee FROM Employee e1JOIN Employee e2ON e1.managerId = e2.idWHERE e1.salary > e2.salary 조인 사용법을 이해하기 시작한 것 같아서 너무 뿌듯하다 ㅋㅋㅋㅋㅋㅋ
해결일언어레벨테스트명20240809SQLeasy 182. Duplicate Emails 링크 : https://leetcode.com/problems/duplicate-emails/ 중복되는 데이터 출력하기! 내 코드 | id | email || -- | ------- || 1 | a@b.com || 2 | c@d.com || 3 | a@b.com | 제시된 데이터이다. SELECT email EmailFROM Person GROUP BY emailHAVING count(DISTINCT email) > 1 처음에 이걸 바로 썼는데 아무것도 출력되지 않아서 DISTINCT를 잘못 썼구나 하고 다시 출력을 해보았다. SELECT email Email ,count(DISTINCT emai..
해결일언어레벨테스트명20240808SQLeasy 607. Sales Person 링크 : https://leetcode.com/problems/sales-person/ 내 코드# Write your MySQL query statement belowWITH namelist AS (SELECT nameFROM SalesPersonWHERE sales_id in (SELECT sales_id FROM Orders WHERE com_id in (SELECT com_id ..
SQLD 공부 중 COALESCE 라는 다소 낯선 함수를 발견해서, 사용법을 정리해둔다.COALESCE는 인수를 순서대로 평가하고 처음으로 NULL이 아닌 첫 번째 식의 현재 값을 반환한다. 아래가 문제에 나온 예시다. [데이터]COL1 COL2--------------100 100NULL 60NULL NULL [SQL] SELECTCOALESCE(COL1, COL2 *50 , 50)FROM TAB1; 첫번째 행 > 첫번째 값인 col1이 null이 아니므로 그대로, 100첫번째 행 > 첫번째 값은 null이니 스킵, 두번째 값인 60에 50을 곱하여, 3000세번째 행 > col1, col2 둘다 null이기 때문에 스킵, 마지막의 값 50 (100, 3000, 50) 참고링크https://lear..
https://towardsdatascience.com/dont-start-your-sql-queries-with-select-clause-d30fa1b701f6 Don’t Start Your SQL Queries with the ‘Select’ StatementFollow this right approach to write your SQL queriestowardsdatascience.com 팀원분이 추천해주신 아티클로 스터디 진행하기로 했다. 생각해보면 SQL 문제풀이를 할 때 항상 요구되는 컬럼명을 SELECT에 기재하고 시작하는 버릇이 있는데,아티클을 읽으며 깨닫는 점이 있기를 바란다. '이상적인' 쿼리 작성 순서는 SQL이 쿼리를 실행하는 방법과 일치해야 한다. 1. 항상 FROM/JOIN으로..