24.09.27(집계함수, instr(), concat(), 테이블 별칭, 서브쿼리, mod(), 'CASE WHEN THEN ELSE END 컬럼' 조건식, if(), ifnull())

jiiiiiiiArchive.·2024년 9월 27일

🤯지식주머니🤯

목록 보기
27/98
post-thumbnail

집계함수(Aggregate Functions)

  • 여러 행에서 값을 계산하여 하나의 결과를 반환하는 함수
  • 종류
    • COUNT() : 행의 개수
    • SUM() : 숫자 열의 합 계산
    • AVG() : 숫자 열의 평균 계산
    • MAX() : 열에서 가장 큰 값 반환
    • MIN() : 열에서 가장 작은 값 반환
-- COUNT: 전체 직원 수
SELECT COUNT(*) AS totalEmployees FROM Employees;

-- SUM: 직원들의 급여 합계
SELECT SUM(salary) AS totalSalary FROM Employees;

-- AVG: 직원들의 평균 급여
SELECT AVG(salary) AS averageSalary FROM Employees;

-- MAX: 가장 높은 급여
SELECT MAX(salary) AS maxSalary FROM Employees;

-- MIN: 가장 낮은 급여
SELECT MIN(salary) AS minSalary FROM Employees;

INSTR()

  • 문자열 내에서 특정 문자열이 처음 나타나는 위치 반환
-- 'abcde' 문자열에서 'cd'가 처음 등장하는 위치를 반환
SELECT INSTR('abcde', 'cd') AS Position;
-- 결과: 3

CONCAT()

  • 두 개 이상의 문자열을 하나로 결합
-- 'Hello', ' ', 'World' 문자열을 하나로 결합
SELECT CONCAT('Hello', ' ', 'World') AS Greeting;
-- 결과: 'Hello World'

테이블 별칭(Table Alias)

  • 테이블 이름에 임시 별칭을 부여하여 쿼리에서 더 간결하게 사용 가능
-- 테이블 Employees에 별칭 e를 붙여서 간결하게 사용
SELECT e.name, e.salary 
FROM Employees e 
WHERE e.salary > 5000;

서브쿼리(Subquery)

  • SQL 쿼리 내에 포함된 또 다른 SQL 쿼리
  • 일반적으로 WHERE, FROM, SELECT 절에서 사용됨
-- 직원 나이가 전체 평균보다 큰 직원을 조회
SELECT name, age 
FROM Employees 
WHERE age > (SELECT AVG(age) FROM Employees);

-- 서브쿼리로 특정 부서의 직원 수 계산
SELECT department, (SELECT COUNT(*) FROM Employees e WHERE e.department = d.department) AS EmployeeCount
FROM Departments d;

MOD()

  • 나머지를 계산하는 함수
  • 첫 번째 숫자를 두 번째 숫자로 나눈 나머지 반환
-- 10을 3으로 나눈 나머지 계산
SELECT MOD(10, 3) AS Remainder;
-- 결과: 1

CASE WHEN THEN ELSE END 컬럼 조건식

  • 여러 조건에 따라 값을 반환하는 조건문
SELECT name, 
CASE 
  WHEN age < 18 THEN 'Minor'
  WHEN age >= 18 AND age < 65 THEN 'Adult'
  ELSE 'Senior'
END AS AgeGroup
FROM Employees

IF()

  • 특정 조건에 따라 다른 값을 반환
-- 급여가 5000 이상이면 'High', 그렇지 않으면 'Low' 반환
SELECT name, IF(salary > 5000, 'High', 'Low') AS salaryLevel 
FROM Employees;

IFNULL()

  • 첫 번째 인자가 NULL이면 두 번째 인자를 반환하고, 아니면 첫 번째 인자를 반환
-- 급여가 NULL이면 0을 반환
SELECT name, IFNULL(salary, 0) AS Salary 
FROM Employees;
-- salary가 NULL이면 0을 반환
profile
이것저것 다 적는 기록장📚

0개의 댓글