- 쟝고
- 뷰
- 완전검색
- 그리디
- 스택
- ORM
- outer join
- count
- Django
- 이진트리
- stack
- M:N
- 백트래킹
- distinct
- SQL
- N:1
- drf
- 큐
- 트리
- Vue
- Tree
- Article & User
- create
- Queue
- migrations
- regexp
- delete
- 통계학
- DB
- update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록SQL/문제풀이 (93)
데이터 분석 기술 블로그
SolutionSELECT NAMEFROM STUDENTSWHERE Marks > 75ORDER BY RIGHT(Name, 3) ASC, ID ASC; 문제에서 이름의 앞 3글자만 ORDERING을 해야 했다. 여태 문자열에서 글자 추출 관련해서는 LIKE를 사용했었는데 ORDER BY에서는 사용할 수 없어서 찾아봤다. RIGHT는 문자열 오른쪽부터 n번까지를 추출해 주는 함수이다.
SolutionSELECT teacher_id, COUNT(DISTINCT(subject_id)) AS cntFROM TeacherGROUP BY teacher_id;
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]$'
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에도 없고.. 디버깅한 것으로 만족해야겠다.
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]$';
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문을 넣어서 사용하면 되었다.
SolutionSELECT DISTINCT(CITY)FROM STATIONWHERE CITY REGEXP '[^aeiouAEIOU]$';