SQL_알고리즘

Updated:

기본

  • 여러 기준으로 정렬
ORDER BY x, y desc
  • 상위 1개
    • 정렬후
LIMIT 1

SUM, MAX, MIN

  • 최댓값 구하기
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS
  • 개수 구하기
SELECT COUNT(*) AS count
FROM ANIMAL_INS
  • 중복제거 NULL제거
SELECT COUNT(DISTINCT NAME) AS count 
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
  • DATETIME에서 HOUR확인
HOUR(DATETIME)
  • SET사용(입양시간구하기(2) FROM PROGRAMMERS)
    • SET: 변수와 같은 역할
    • 자동 FOR문
    • 값 대입시 :=
SET @TIME :=-1;
SELECT (@TIME := @TIME+1) AS HOUR, 
    (SELECT COUNT(*)
    FROM ANIMAL_OUTS
    WHERE @TIME = HOUR(DATETIME)) AS COUNT
FROM ANIMAL_OUTS
WHERE @TIME < 23

null

  • null 처리
    • 만약 null이면 ‘NO name’
SELECT ANIMAL_TYPE, IFNULL(NAME,'NO name'), SEX_UPON_INTAKE
FROM ANIMAL_INS

JOIN

  • INNER JOIN ~ ON ~

  • 없어진 기록 찾기

    • 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL

CASE

CASE 
WHEN 조건 THEN 특정한 다른 값
WHEN 조건 THEN 특정한 다른값
ELSE 조건이 아닌 경우
END

형변환

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d')
FROM ANIMAL_INS

Tags:

Categories:

Updated:

Leave a comment