개발 개념 정리/SQL 4

[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 컬럼 값이 같은 데이터를 하나로 묶어서 그..