갬미의 성장일기
[생애 첫 SQL With 제코베] 주요 함수 본문
이 글은 제주코딩베이스캠프의 생애 첫 SQL With 제코베 강의를 수강하고 정리한 글 입니다.
실습
LOWER / UPPER
소문자, 대문자로 변환
SELECT CustomerID, CustomerName,
LOWER(CustomerName) as 소문자,
UPPER(CustomerName) as 대문자
FROM Customers;
SUBSTR
문자열 슬라이싱
SUBSTR(STR, START, LENTH)
만약 숫자를 하나만 쓴다면 -> 그 이후 모든 문자열 출력
숫자를 셀때 0부터 세는 파이썬과 달리 1부터 센다 헷갈리지 말기
SELECT CustomerID, CustomerName,
SUBSTR(CustomerName, 1,5) as 'Substring'
FROM Customers;
REPLACE
REPLACE('hello world', 'world', 'SQL')
통계 연산
보통은 분산과 표준편차 함수도 제공되지만 W3School에서는 작동 X
SELECT MAX(CustomerID) AS 최댓값,
SUM(CustomerID) AS 전체합,
MIN(CustomerID) AS 최솟값 ,
COUNT(CustomerID) AS 전체행의수,
AVG(CustomerID) AS 평균
FROM Customers;
날짜
DATE() -> 현재 날짜 출력 2021-12-23 + 연산시 년도에 더해짐
TIME() -> 현재 시간 출력 16:25:01 + 연산시 시에 더해짐
SELECT DATE();
SELECT DATE() + 10;
SELECT TIME() + 10;
실습문제
1. 이름의 문자열 길이를 출력해주세요.
SELECT length('Kim Gymin')
2. 이름의 앞 5자리를 *로 처리해주세요.
SELECT CustomerID, CustomerName,
REPLACE(CustomerName, SUBSTR(CustomerName, 1, 5), '*****') AS 별표채운이름
FROM Customers;
3. Product DB에서 전체 제품의 개수를 구해주세요.
count(*) - 행의개수 출력
* == 모든 열의 값을 의미하므로 NULL이 들어있는 행도 포함됨
count(칼럼) - 해당 칼럼의 데이터 개수 출력
이때 특정 열에서 데이터 개수 이므로 NULL값 제외하고 카운트됨
SELECT COUNT(*) as 개수
from Products;
4. 값(price)의 평균을 구해주세요.(함수를 사용해주세요.)
SELECT AVG(Price) as avg
from Products;
5. 제품 이름이 'A'로 시작하면서 가격이 평균 이상인 제품을 구해주세요.
아래와 같이 작성하면 애러가 발생됩니다. 이유를 설명하고, 코드를 작성하세요.
SELECT * FROM Products
WHERE ProductName LIKE 'A%' AND Price > AVG(Price);
SELECT *
from Products
where ProductName LIKE 'A%';
여기까지는 작동을 하는데 ,,;
수업때도 알려주지 않고 ,, 구글을 검색해도 왜 misuse of aggregate function AVG() 오류가 뜨는지 알수없다
where 대신 having 을 사용하라는데 having 사용전 group by 에 어떤걸 넣어야할지?!
제코베 아버지~ 정답을 알려줘
'Deep Learning& ML > SQL' 카테고리의 다른 글
[생애 첫 SQL With 제코베] SQL 기본 구문 (2) (0) | 2021.12.23 |
---|---|
[생애 첫 SQL With 제코베] SQL 기본 구문 (0) | 2021.12.21 |