SQL 7

[HakerRank] Weather Observation Station 4 오답

https://www.hackerrank.com/challenges/weather-observation-station-4/problem?isFullScreen=true Weather Observation Station 4 | HackerRankFind the number of duplicate CITY names in STATION.www.hackerrank.com 문제설명 : STATION 테이블에서 중복된 CITY 이름의 개수를 구하는 문제입니다.  정확히 설명하자면 전체 CITY 개수와 고유한 CITY 개수를 각각 계산하고 그 차이를 구하는 문제입니다. 내가 작성한 코드 (틀린 코드) : SELECT COUNT(CITY), COUNT(DISTINCT CITY) AS DISTINCT_CITY, DIF..

[SQL] DISTINCT - 중복된 값 제거

DISTINCT 키워드중복된 값을 제거할때 사용한다.예를들어 tSite에 회원가입된 사용자들의 지역 목록을 가져올때 사용할 수 있다. [ tSite 테이블 ]NAMEAGEREGION김영희23서울이철수18대전오미자33대전안지혁20부산박지수27강원 SELECT DISTINCT region FROM tSite;REGION서울대전부산 강원 SQL Server vs Oracle 중복 처리방식 차이SQL Server는 DISTINCT를 적용할 때 자동으로 정렬을 수행하면서 중복을 제거한다.Oracle은 DISTINCT를 적용할 때 별도로 정렬하지 않고, 단순히 중복만 제거한다.=> 중복 제거 후 순서를 정렬하기 위해선 ORDER BY를 쓰는 습관을 들이는게 좋다고 생각한다.   COUNT함수에서의 DISTINCT ..

[SQL] GROUP BY와 집계 함수의 이해하기

SQL에서 GROUP BY 와 집계함수 (COUNT(), SUM(), AVG(), MAX(), MIN())를 사용할 때 헷갈렸던 경험을 정리하였다.처음에는 집계함수가 어떤 순서로 실행되는지, 그리고 왜 HAVING 과 WHERE 을 적절히 구분해야하는지 혼동했었다. 문제의 시작 :문제는 WHERE 절에서 왜 집계함수를 사용할 수 없는지 이해하는데서 시작되었다.SQL에서 WHERE 절은 데이터를 필터링 하는데 쓰이는데, 집계함수는 데이터를 그룹화 한 후에 사용할 수 있기 때문에 WHERE에서는 사용할 수 없다는 사실을 몰랐었다.WHERE vs HAVING:WHERE 절은 그룹화되기 전에 조건을 걸기 때문에 집계 함수가 적용되지 않은 상태에서 데이터를 필터링할 수 있다. HAVING 절은 그룹화된 후에 조건..

[SQL] COUNT(*) vs COUNT(컬럼) 차이

SQL에서 COUNT 함수는 특정 컬럼이나 테이블의 행 수를 셀 때 사용되지만, 사용 방식에 따라 결과가 달라질 수 있다.내가 헷갈렸던 부분은 COUNT(*) 와 COUNT(컬럼)의 차이를 이해하는 것이였다. 예시 테이블 : OrdersOrderIDCustomerIDOrderDate11012025-03-012102NULL31032025-03-024104NULL51052025-03-03  1. COUNT(*) - 모든 행의 개수를 셈COUNT(*) 는 테이블의 모든 행을 센다. 이때 NULL 값을 포함한 모든 행이 계산된다. 따라서 OrderDate가 NULL인 행도 포함해서 총 5개의 행을 센다.SELECT COUNT(*) FROM Orders; 2. COUNT(OrderDate) – NULL을 제외한 ..

[SQL] GROUP BY 이해하기: SQL로 데이터 그룹화와 계산하기

예제 : 매장별 판매 합계 구하기 Sales 테이블 :StoreSalesAmountA500B300B200A150C450 우리가 Store를 기준으로 그룹을 묶고, 각 그룹의 SalesAmount 값을 합산하고 싶다고 가정하자.SELECT Store, SUM(SalesAmount) AS TotalSalesFROM SalesGROUP BY StoreORDER BY TotalSales DESC; 이 쿼리는 Sales 라는 테이블에서 각 가게의 총 판매 금액 합계를 구하는 쿼리이다. [ GROUP BY ]그 전에 GROUP BY 에 대해서 알아볼 필요가 있다. GROUP BY 는 특정 컬럼을 기준으로 데이터를 그룹화 할때 사용한다.GROUP BY Store는 Store 컬럼 값이 같은 데이터를 하나로 묶어서 그..

[SQL] 강원도에 위치한 생산공장 목록 출력하기 [ LIKE 연산자 ]

[ 문제 ] : https://school.programmers.co.kr/learn/courses/30/lessons/131112[ 요구사항 ]강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하자.결과는 공장 ID를 기준으로 오름차순 정렬해야한다.[ LIKE 연산자 ]LIKE는 문자열 패턴 매칭을 위해 사용되는 연산자입니다. 이 연산자는 WHERE 절에서 주로 사용되며 특정 열(column)의 값이 특정 패턴과 일치하는지 확인하는 데 사용됩니다.WHERE 컬럼명 LIKE '패턴';와일드카드(wildcard) 문자와 함께 사용하여 부분 문자열을 검색할 수 있습니다.     % (퍼센트 기호): 0개 이상의 문자와 일치합니다. '%강원도%' : ‘강원도’라는 문자열이 어디든 포함된 모든 값..

[SQL] SUV 평균 일일 대여 요금 [ ROUND 함수 ]

[ 문제 ]  https://school.programmers.co.kr/learn/courses/30/lessons/151136[ 요구사항 ]‘SUV’ 자동차들의 평균 일일 대여 요금을 구해야 한다. 평균값은 소수 첫째 자리에서 반올림해야 하며, 결과는 AVERAGE_FEE라는 컬럼명으로 출력한다.알게된것 : ROUND 함수 ROUND 함수란 숫자를 소수점 자리에서 반올림 할때 사용되는 함수이다.ROUND(숫자|칼럼, 반올림할 소수점 자리)  숫자 : 반올림 할 값 (ex. 평균 계산 결과)반올림 할 소수점 자리 : 0이면 소수 첫째 자리에서 반올림 예시 : ROUND(123.456, 0) → “123” (소수 첫째 자리에서 반올림)내가 사용한 방법 :SUM(DAILY_FEE): 모든 ‘SUV’의 일일..