- 뷰
- stack
- Article & User
- 트리
- ORM
- DB
- migrations
- 통계학
- 그리디
- create
- Vue
- 스택
- regexp
- Queue
- distinct
- 백트래킹
- M:N
- outer join
- 큐
- Tree
- drf
- update
- 완전검색
- 쟝고
- SQL
- 이진트리
- Django
- N:1
- count
- delete
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록전체 글 (300)
데이터 분석 기술 블로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JcsX9/btsKgdV9aB5/iNnfHf1HmYaUQn7umFP601/img.png)
SolutionSELECT NAMEFROM STUDENTSWHERE Marks > 75ORDER BY RIGHT(Name, 3) ASC, ID ASC; 문제에서 이름의 앞 3글자만 ORDERING을 해야 했다. 여태 문자열에서 글자 추출 관련해서는 LIKE를 사용했었는데 ORDER BY에서는 사용할 수 없어서 찾아봤다. RIGHT는 문자열 오른쪽부터 n번까지를 추출해 주는 함수이다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oXiXi/btsKf71TzEE/m3HYnTkjdET4IkcyEn8wE1/img.png)
SolutionSELECT teacher_id, COUNT(DISTINCT(subject_id)) AS cntFROM TeacherGROUP BY teacher_id;
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GVpbG/btsKgubmqda/SKcGfEHMhFweqBiXTBXEaK/img.png)
Solution 1SELECT DISTINCT(CITY)FROM STATIONWHERE CITY NOT REGEXP '^[aeiouAEIOU]' AND CITY NOT REGEXP '[aeiouAEIOU]$' Solution 2SELECT DISTINCT(CITY)FROM STATIONWHERE CITY REGEXP '^[^aeiouAEIOU]' AND CITY REGEXP '[^aeiouAEIOU]$'
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ywvue/btsKfyexpjb/xdy8KDMrHhOxwkS8c3hZzK/img.png)
SolutionSELECT query_name, ROUND(SUM(rating / position) / COUNT(query_name), 2) AS quality, ROUND(SUM(CASE WHEN rating 1. rating이 3 이하인 개수를 구해야 하는데 CASE WHEN을 사용할 수 있는지 몰랐었다. 그리고 꼭 END를 뒤에 붙여야 한다.2. WHERE 절 없이 제출했더니 query_name이 null인 경우는 계산이 안되게 해야 했다.. 근데 문제에 그런 말이 없는데.. Test Case에도 없고.. 디버깅한 것으로 만족해야겠다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/coBXeC/btsKgbpc6eg/i3hCIi4SfkWqEe1whjbYH0/img.png)
Solution1SELECT DISTINCT(CITY)FROM STATIONWHERE CITY REGEXP '^[^aeiouAEIOU]' OR CITY REGEXP '[^aeiouAEIOU]$'; Solution 2SELECT DISTINCT(CITY)FROM STATIONWHERE CITY NOT REGEXP '^[aeiouAEIOU]' OR CITY NOT REGEXP '[aeiouAEIOU]$';
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgvE0e/btsKggYcSDS/ik736Q3ECD2P3d9tl4G1vK/img.png)
SolutionSELECT contest_id, ROUND(COUNT(contest_id) * 100 / (SELECT COUNT(*) FROM Users), 2) AS percentageFROM RegisterGROUP BY contest_idORDER BY percentage DESC, contest_id ASC; Users에서 총개수를 구해야 한다는 것은 알고 있었는데 JOIN이 아니라 어떤 식으로 구할지를 몰라서 확인해 보니 총 개수 구하는 부분에서 SQL문을 넣어서 사용하면 되었다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lFJdP/btsKgrkwWcx/TCqKj4LQENI7SwRiGzPOP0/img.png)
SolutionSELECT DISTINCT(CITY)FROM STATIONWHERE CITY REGEXP '[^aeiouAEIOU]$';