- Article & User
- regexp
- stack
- SQL
- 트리
- Tree
- migrations
- 백트래킹
- 뷰
- update
- Django
- drf
- 완전검색
- 큐
- 이진트리
- count
- DB
- M:N
- 쟝고
- distinct
- outer join
- Queue
- ORM
- 그리디
- Vue
- delete
- 통계학
- 스택
- create
- N:1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록분류 전체보기 (301)
데이터 분석 기술 블로그
HAVING 절은 SQL에서 집계 함수(COUNT, SUM, AVG, MAX, MIN 등)로 그룹화된 결과에 조건을 적용할 때 사용하는 구문입니다. WHERE 절과 비슷한 역할을 하지만, WHERE 절은 개별 행에 조건을 적용하는 반면, HAVING 절은 그룹화된 결과에 조건을 적용합니다.HAVING 절의 특징:GROUP BY 절과 함께 사용됩니다. GROUP BY로 그룹화된 데이터를 대상으로 집계 함수의 결과에 조건을 적용할 수 있습니다.집계 함수는 HAVING 절에서만 필터링할 수 있습니다. 집계 함수는 WHERE 절에서 사용할 수 없기 때문에, 그룹화 후에 HAVING으로 필터링을 해야 합니다.HAVING 절의 구문:SELECT column1, column2, AGGREGATE_FUNCTION(co..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A8f85/btsJSIggQ9p/u37uMIavGNH8uFK1nn7MT1/img.png)
SolutionSELECT seller_id, COUNT(DISTINCT order_id) AS ordersFROM olist_order_items_datasetGROUP BY seller_idHAVING COUNT(DISTINCT order_id) >= 100; 처음에는 WHERE 절을 사용해서 COUNT를 사용하려고 했는데 계속 오류가 났다. 찾아보니 WHERE은 집계 함수를 사용할 수 없고 개별 행에 대한 조건을 필터링하는 데 사용된다. 집계 함수를 사용하려면 HAVING 절을 사용해야 한다.HAVING 절에 대한 내용은 2024.08.27 - [SQL/SQL 개념] - HAVING 이걸 참고하자. 또 DISTINCT 없이 사용했었는데 '레코드 개수가 다릅니다'라고 틀렸다. 한 주문 안에 여러 상..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmzpPf/btsJS7GL36n/xYaw5K1scnH7hKRyTX8vXK/img.png)
SolutionSELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python'OR SKILL_2 = 'Python'OR SKILL_3 = 'Python'ORDER BY ID ASC;
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdsw7R/btsJShQZZrL/JQL0XHbul276MNU40w8qD1/img.png)
SolutionSELECT Product.product_name, Sales.year, Sales.priceFROM SalesLEFT JOIN ProductON Sales.product_id = Product.product_id;
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btXEB5/btsJSjnxIhx/UXG1R5ctX0gRBOQQYwczuk/img.png)
SolutionSELECT CITY, STATEFROM STATIONWHERE LAT_N > 0AND LONG_W > 0;
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cMA9t5/btsJQUh9DVS/gKvK9cdBwm11wTxdKaHXak/img.png)
SolutionSELECT year, UPPER(SUBSTRING(city, 1, 3)) AS cityFROM gamesWHERE year >= 2000ORDER BY year DESC; 일단 문제를 좀 잘 읽어야 할거 같다. 2000년도 이후 데이터만 추출해야 하는데 그걸 모르고 계속 제출했다가 테스트케이스 9개가 계속 틀리는 상황이 발생했다. 앞에서 3글자만 추출하도록 하는 SUBSTRING 함수를 사용했다. 사용하는 방법은SUBSTRING(열 이름, 시작하는 글자, 추출해야하는 글자 개수) 이렇게 사용하면 된다. 또, 도시 이름은 대문자로 출력되어야 한다고 했으므로 UPPER이라는 함수를 사용해서 대문자로 추출할 수 있도록 한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cmFpIV/btsJQKGEsgh/CeKGnDxhGTjWABch0Vc1iK/img.png)
SolutionSELECT COUNT(*) AS FISH_COUNTFROM FISH_INFOWHERE LENGTH IS NULL; 문제에서 10cm 이하인 물고기는 LENGTH가 NULL로 기록된다고 하므로 NULL의 개수만 출력하면 된다.처음에는 COUNT(LENGTH)를 했었다. COUNT(*)과 다르지 않을 거라고 생각했었는데 COUNT() 함수는 NULL 값을 무시한다. 즉, 그 행을 세지 않게 되므로 계속 값이 0이 나온다.