전체 글 210

DBeaver)중요한 IF / CASE 문법

자주 쓰는 IF 함수 SQL 짜다 보면 문자나 숫자같은 데이터 넣는 곳이 많습니다.근데 그 곳에 고정된 값이 아니라 조건에 따라서 각각 다른 값을 넣고 싶은 경우 사용하면 됩니다.  IF(조건식, 조건식맞으면이거, 조건식틀리면이거); IF() 안에 차례로 이것들 넣으면 됩니다. 조건식은 WHERE 뒤에 쓰던거 그대로 사용가능합니다.    SELECT IF(1 + 2 = 3, '맞음', '틀림'); 조건식이 맞으니 '맞음'이라는 문자가 그 자리에 남겠군요.진짠지 궁금하면 출력해봅시다. IF()는 문자 숫자 등의 데이터가 들어가는 곳에 전부 넣을 수 있기 때문에 이렇게 사용할 수도 있습니다.       예를 들어서 card 테이블에서 사용금액이 20만원이 넘는 경우 "우수" 그게 아니면 "거지"를 출력하고 ..

Mysql&DBeaver 2024.09.06

DBeaver)그룹지어 통계낼 땐 GROUP BY

데이터에서 의미를 찾고 싶으면 전체를 통계내는 것 보다 특정 그룹을 뽑아서 통계를 내는게 훨씬 의미찾기 쉽다고 했습니다.특정 그룹을 뽑고 싶으면 WHERE 써서 필터링하면 되는데그룹 뽑을게 많다면 GROUP BY 문법 사용하면 편리할 수 있습니다.       GROUP BY  SELECT 고객등급 FROM card GROUP BY 고객등급 저번시간 card 테이블에서 GROUP BY 문법을 써봅시다. 1. SELECT FROM 뒤에 GROUP BY 컬럼명을 붙일 수 있는데2. 그럼 그 컬럼에 있는 카테고리끼리 그룹지어서 보여줍니다.  ▲ 실행해보니까 진짜 카테고리끼리 그룹지어줌 (실은 DISTINCT 동작방식이랑 유사합니다.) 근데 그룹만 지으면 아무 쓸모가 없습니다. GROUP BY는 전에 했던 MIN..

Mysql&DBeaver 2024.09.06

DBeaver)SELECT 안에 SELECT 또 쓸 수 있음 (서브쿼리)

실은 SELECT 문법안에 SELECT 이런걸 또 사용할 수 있습니다. 서브쿼리라고 하는데 언제 어떻게 쓰는지 알아봅시다.       Q. 위의 card테이블에서 "사용금액들의 평균"보다 더 큰 사용금액을 가진 사람만 출력하고 싶으면 어떻게하죠?  1. 사용금액의 평균을 구해서 2. 사용금액 > 평균인 행만 출력해주쇼라고 코드짜면 되는거 아닙니까     SELECT AVG(사용금액) FROM card 1. 컬럼에 있는 값을 평균내고 싶으면 AVG() 쓰면 된다고 했습니다.그걸 써서 평균을 구합니다. 대충 245000원이 나옵니다.  SELECT * FROM card WHERE 사용금액 > 2450002. 그 다음에 평균 245000보다 높은 것들만 출력하라고 조건문 쓰면 됩니다.  근데 이걸 수동으로 2..

Mysql&DBeaver 2024.09.06