목록데이터분석 (73)
개발은 처음이라 개발새발
우선 group by를 소개했을 때 예제로 적어보았던 사용자별 총 구매액을 다시 불러 와보겠습니다. select userid as '사용자 아이디', sum(price*amount) as '총 구매액' from buytbl group by userid; +---------------+-----------+ | 사용자 아이디 | 총 구매액 | +---------------+-----------+ | BBK | 1920 | | EJW | 95 | | JYP | 200 | | KBS | 1210 | | SSK | 75 | +---------------+-----------+ 지난 번에는 이렇게 총 구매액만을 구해봤는데 여기에서 더 나아가 총 구매액이 1000 이상인 사용자에게만 사은품을 증정하고 싶다면 어떻게..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/y7kmP/btrN4PjVZjV/BkBCQOnHrV8Jol3S1HXAd0/img.png)
SQL에서 group by와 함께 사용하는 집계함수에 대해 간단하게 알아보겠습니다. 위 표는 group by와 함께 사용되는 집계 함수입니다. 그렇다면 위의 것들 중에 예제로 간단하게 어떻게 노출되는지 확인해보겠습니다. 우선 평균을 구해보겠습니다. 지난 편에 이어 buytbl에서 전체 구매자가 구매한 물품의 개수를 구해보겠습니다. select avg(amount) as '평균 구매 개수' from buytbl; +----------------+ | 평균 구매 개수 | +----------------+ | 2.9167 | +----------------+ 이렇게 전체 평균 구매 개수를 구하는 걸 넘어 사용자별로 평균 구매 개수를 한번 내보겠습니다. select userid , avg(amount) as '..
SQL에는 파이썬 처럼 group by가 존재합니다. group by는 말그대로 그룹으로 묶어주는 역할을 합니다. 이를 통해서 그룹별로 수량이 어떻게 되는지 그리고 품목 남은 수량의 가격이나 구매자가 총 얼마를 결재 했는지에 대해 알 수 있습니다. 우선 buytbl에서 사용자별 구매한 물품 개수에 대해 알아보겠습니다. select userid, sum(amount) from buytbl group by userid; +--------+-------------+ | userid | sum(amount) | +--------+-------------+ | BBK | 19 | | EJW | 4 | | JYP | 1 | | KBS | 6 | | SSK | 5 | +--------+-------------+ 네 ..
서브쿼리란 쿼리문 안에 또 쿼리문이 들어 있는 것을 말합니다. 지금까지는 숫자의 범위 안에 있는 데이터이거나 그것보다 큰 데이터를 찾을 때 where이나 between문 안에 직접적으로 숫자를 입력했지만 만약 데이터 안에 어떤 인물보다 높은 조건을 도출해야 한다면 어떨까요? 이럴 때는 서브 쿼리를 사용하면 됩니다. 지난 편과 마찬가지로 sqldb의 usertbl을 활용해보겠습니다. 이번에는 직접적으로 height가 몇보다 큰지가 아닌 김경호보다 키가 큰 데이터를 도출해보겠습니다. ### 김경호 키 확인 select name,height from usertbl where name = '김경호'; ### 서브쿼리를 활용해 김경호보다 키가 큰 데이터 찾기 select name, height from usert..
이번에 간단하게 소개해볼 연산자는 LIKE 입니다. 가끔 where 조건을 적을 때 컬럼명은 기억이 나는데 조건으로 적을 데이터가 기억이 안날 때가 있습니다. 저같은 경우는 이름을 등록할 데이터베이스의 경우 성은 기억이 나는데 이름이 기억이 안 날때가 많더라고요. 이럴 때 LIKE 연산자를 사용하면 여러분의 기억을 찾는데 도움이 될 겁니다. ### LIKE select name,height from usertbl where name like '김%'; +--------+--------+ | name | height | +--------+--------+ | 김범수 | 173 | | 김경호 | 177 | +--------+--------+ 위 사용한 조건은 맨앞에 이름이 김이고 %는 뒤에 몇글자든 허용한다..
이번 시간에는 WHERE 절에 대해 알아보겠습니다. WHERE절은 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을 때 사용하는 구문입니다. 우선 지난 시간에 소개한 SQL의 기본적인 쿼리 구문을 다시 보겠습니다. ####SELECT 구문 기본 구조 SELECT 열 이름 FROM 테이블 이름 WHERE 조건 지난 시간에는 from까지 해봤는데 이번 시간에는 where 조건식에 대해 해보겠습니다. 저는 sqldb의 usertbl에 있는 데이터를 가지고 조건을 입혀 추출해볼건데요. 이름이 '김경호'인 사람의 데이터를 찾아보겠습니다. use sqldb; select * from usertbl where name = '김경호'; +--------+--------+-----------+------+-..
https://data-so-hard.tistory.com/50 merge()함수로 데이터프레임 병합하기 [python/pandas] 안녕하세요. 2주만의 포스팅을 하게 됐습니다. 오늘 포스팅할 것은 concat()함수에 이어 merge()함수로 데이터프레임을 병합하는 것입니다. merge()함수는 SQL의 join과 비슷한 방식으로 어떤 기준에 의 data-so-hard.tistory.com 지난 1편에 이어서 merge 함수의 옵션에 대해 알아보겠습니다. 이번 시간에는 'how=' 옵션에 대해 알아보려고 하는데요. how 옵션을 통해서는 왼쪽과 오른쪽을 기준으로 데이터 값을 병합합니다. 또한 left_on과 right_on 옵션을 사용하면 좌우 데이터프레임의 키값을 다르게 지정할 수 있습니다. 우선 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btCYJE/btrLPcmqg8K/vLl3fTFkqO8RpjXb0KS8lK/img.jpg)
인덱스 맛보기에 이어 트리거 맛보기를 해보겠습니다. 트리거는 테이블에 부착되엇 테이블에 insert, update, delete 작업이 발생되면 실행되는 코드입니다. 쉽게 설명하면 '자동'으로 위와 같은 쿼리가 실행된다는 겁니다. 자세한 내용은 다음 시간에 다뤄보도록 하고 이번 시간은 맛보기로 해보겠습니다. 우선 shopdb에 있는 memeber_tbl에서 삭제된 데이터를 트리거 통해 삭제된 데이터를 담는 테이블에 넣어보려고 합니다. 그러면 우선 member_tbl에 삭제할 데이터를 입력해보도록하겠습니다. 그리고 삭제한 데이터를 담을 테이블까지 생성해보겠습니다. insert into shopdb.member_tbl values('figure','연아','경기도 군포시'); #데이터 변경 update sh..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/R22ne/btrLNoU9kic/SjYy2Hk60cVFm2D3n0gKY0/img.jpg)
데이터베이스는 데이터를 효율적이고 안전하게 저장하는 역할을 해야 할 뿐만 아니라 조회 역시 빠르게 하는 게 좋습니다. 이를 위해서 필요한 것은 여러 가지가 있는데요. 그중에서 인덱스를 지정해 조회를 하는 시간을 줄이는 방법이 있습니다. 이번 시간에는 이것이 MySQL이다 3장에서 간략히 소개된 인덱스 활용 맛보기에 대해 소개해보겠습니다. 우선 새로운 테이블을 만들고 데이터를 삽입해야 합니다. 데이터는 이것이 MySQL이다 초반 다운받을 수 있는 employees 데이터베이스에서 가져오려고 합니다. #새로운 테이블 만들기 create table shopdb.indexTBL ( first_name varchar(14), last_name varchar(16), hire_date date); #새로운 테이블에..
지난 편에서 데이터를 담을 테이블을 생성했으니 이번엔 그 테이블 안에 데이터를 입력해보도록하겠습니다. 데이터를 입력하는 문법은 insert into 입니다. 먼저 쿼리를 보겠습니다. INSERT INTO `member_tbl` (`member_id`, `member_namel`, `member_addres`) VALUES ('Dang', '당탕이', '경기 부천시 중동'); INSERT INTO `member_tbl` (`member_id`, `member_namel`, `member_addres`) VALUES ('Han', '한주연', '인천 남구 주안동'); INSERT INTO `member_tbl` (`member_id`, `member_namel`, `member_addres`) VALUES ..