SQL(11)
-
[프로그래머스 / ORACLE] 카테고리 별 상품 개수 구하기
내 코드 SELECT SUBSTR(PRODUCT_CODE, 1, 2) CATEGORY, COUNT(*) PRODUCTS FROM PRODUCT GROUP BY SUBSTR(PRODUCT_CODE, 1, 2) ORDER BY 1 느낀점 회사에서는 MSSQL을 쓰지만 프로그래머스에는 MSSQL이 없어서 ORACLE을 쓰는데 가끔 이런 함수이용하는 문제들이 나오면 주춤한다. MSSQL에는 LEFT함수가 있지만 ORACLE에는 없기때문이다. 다양한 SQL언어를 사용하면서 이런 차이점들을 알아가는게 신기하기도 하고 불편하기도 하다. 하지만 용어가 다를뿐인지 기본 개념은 비슷비슷하기 때문에 혼란스럽지는 않다.
2023.12.29 -
[MSSQL]SMALLDATETIME과 DATETIME의 차이
1.정확도 DATETIME : 1/100초 SMALLDATETIME : 1분 2. 저장공간 DATETIME : 8byte SMALLDATETIME : 4byte 3. 범위 DATETIME : 1753.01.01~9999.12.31 SMALLDATETIME : 1900.01.01~2079.01.06 4. 형식 DATETIME : 1900-01-01 00:00:00.000 SMALLDATETIME : 1900-01-01 00:00:00
2023.10.22 -
[SQL] ORACLE, MSSQL, MYSQL에서 NULL값을 체크하는 함수
MSSQL은 ISNULL ORACLE은 NVL MYSQL은 IFNULL 을 사용한다. 왜 다 달라서 헷갈리게 하는걸까??
2023.10.22 -
[SQL] !=, <> 에 대하여
SQL에서는 값을 비교할때, 특정값이 아닌 경우에 WHERE에서 !=, 이 부정 연산자를 많이 사용한다. 성능에서는 차이가 없다고 한다. 마음껏 맘에 드는 방식을 골라 사용하면 되지만, ISO 표준에는 이 방식이 맞다고 한다.
2023.10.22 -
[ORACLE] COUNT()함수에 대하여
SELECT COUNT(*), COUNT(칼럼명), COUNT(DISTINCT 칼럼명) FROM 테이블 1. COUNT(*) : 전체 데이터의 개수를 반환 2. COUNT(칼럼명) : 칼럼명의 데이터 중 NULL 값을 제외한 개수를 반환 3. COUNT(DISTINCT 칼럼명) : 칼럼명의 데이터 중 중복을 제거하고 데이터 개수 반환 #GROUP BY로 묶은 데이터들의 각 개수를 구하고 싶을 때 SELECT 칼럼명, COUNT(칼럼명) FROM 테이블 GROUP BY 칼럼명 #COUNT함수 안에 CASE WHEN 을 사용하여 데이터를 원하는 대로 뽑을 수도 있다. 이 경우는 아직 해보지 않았기 때문에 어떤방식으로 사용하지 잘 모르겠다.
2023.10.22 -
[프로그래머스/ORACLE] 동명 동물 수 찾기(GROUP BY 로 묶은 데이터의 각 개수 구하기)
내코드 -- 코드를 입력하세요 SELECT NAME, COUNT(NAME) FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >1 ORDER BY NAME 느낀점 COUNT함수는 어렵다.. 내가 아는 함수라 하더라도 아직 모르는게 많구나.. 이번 문제는 GROUP BY 로 묶은 데이터들의 각 개수를 구하는 문제였다. COUNT는 집계함수라서 HAVING에서 써야한다고 한다. WHERE에서는 사용할 수 없다. 총 개수를 구하기 위해서는 -- 코드를 입력하세요 SELECT COUNT(*) FROM ( SELECT NAME, COUNT(NAME) FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >1 ) 이런식으로 작성하면 된다.
2023.10.22