- create
- N:1
- regexp
- ORM
- 완전검색
- Queue
- 스택
- Django
- 트리
- count
- update
- SQL
- delete
- distinct
- 백트래킹
- Article & User
- outer join
- Vue
- 그리디
- 통계학
- 뷰
- 쟝고
- M:N
- migrations
- DB
- stack
- 큐
- Tree
- drf
- 이진트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록2025/01 (20)
데이터 분석 기술 블로그
SELECT product_id, year AS first_year, quantity, priceFROM SalesWHERE (product_id, year) IN (SELECT product_id, MIN(year) FROM Sales GROUP BY product_id);
SELECT ROUND(AVG(order_date = customer_pref_delivery_date) * 100, 2) AS immediate_percentageFROM DeliveryWHERE (customer_id, order_date) in ( SELECT customer_id, min(order_date) FROM delivery GROUP BY customer_id);AVG(condition) 활용법:SQL에서 조건식(condition)을 AVG()에 넣으면, 조건이 참인 행들의 비율을 계산할 수 있다.예: AVG(order_date = customer_pref_delivery_date)는 조건이 참인 경우 1로 간주하고, 평균을 계산하여 비율을 반환.WHERE (column..
SELECT ROUND(COUNT(DISTINCT(player_id)) / (SELECT COUNT(DISTINCT(player_id)) FROM Activity), 2) AS fractionFROM ActivityWHERE (player_id, DATE_SUB(event_date, INTERVAL 1 DAY)) IN ( SELECT player_id, MIN(event_date) FROM Activity GROUP BY player_id);WITH를 사용한 단계적 접근:첫 로그인 날짜 계산(FirstLogin)과 첫 로그인 다음 날 확인(NextDayLogin)을 별도 CTE로 분리하면 가독성과 디버깅이 쉬움.JOIN을 활용한 비교:JOIN을 사용하여 player_id와 첫 로그인 다음..
SELECT SUBSTR(trans_date, 1, 7) AS month, country, COUNT(id) AS trans_count, SUM(CASE WHEN state='approved' THEN 1 ELSE 0 END) AS approved_count, SUM(amount) AS trans_total_amount, SUM(CASE WHEN state='approved' THEN amount ELSE 0 END) AS approved_total_amountFROM TransactionsGROUP BY month, country; SELECT에서 필터링한 것도 GROUP BY에서 사용할 수 있는 것을 몰랐다.