1 분 소요

오전 수업

그룹화

많은 데이터를 그저 나열하기만 해선 가독성이 떨어진다. 필요한 데이터만을 따로 추려낼 수 있어야만 정보를 처리하는 것이 빨라진다.

그룹화 방법(group by)

테이블 내에 존재하는 row 중 하나를 지정하여 그 row를 묶는다. 보통의 경우 id 같은 것을 베이스로 묶여 있다면 group by 방식을 사용하면 아이스크림의 맛 별로 분류를 한다던가 하는 식으로 분류를 할 수 있다. 한 번 그룹을 만들고 나면 기존의 정리 방식과 다른 방법을 사용해여 한다. group by된 데이터 가운데 조건을 달기 위해선 having을 사용해야 한다.

집계 함수

group by를 사용한 다음에 grouping 된 데이터를 집계하는 함수이며 group by를 사용한 뒤에야 가능하다.

함수 이름 기능
sum() grouping 된 데이터 내의 내부 값을 전부 더한다.
sum(if()) grouping 된 데이터 내부 값 더할 때 조건을 추가한다.
avg() grouping 된 데이터의 평균을 구한다.
count(*) grouping 된 데이터의 숫자를 센다.(null 포함)
count(row_name) grouping 된 데이터의 숫자를 센다.(null 제외),필터링이 돌아가기 때문에 모든 값을 일괄적으로 세는 것보다 좀 느리다.

오후 작업

내가 맡은 작업

내가 맡았던 gatcha 부문과 squad 부문은 어찌저찌 해결되었다.
gatcha는 전체 캐릭터 리스트를 받아 온 다음 그 캐릭터 리스트 가운데 하나를 간단한 랜덤 함수를 사용하여 골라 그걸 집어 넣고, 그 다음 userAccount에서 돈을 빼는 작업을 했다.
나중에 로직을 변경하거나 할 수는 있으니 수정할 여지는 있다.
squad 부분은 gatcha보다 좀 어려웠는데, squad를 다 받아온 다음 user와 squad 내의 값이 일치하는 것들을 추려내 읽고 다 삭제 한 다음에 받아온 데이터를 집어넣는 식으로 작업했다.
이것보다 효율 좋은 방법이 분명 있을 테니 좀 더 숙고해 보도록 하겠다.