programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 풀이: SET @hour := -1; SELECT (@hour := @hour + 1) as HOUR, (SELECT COUNT(ANIMAL_ID) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT FROM ANIMAL_OUT..
쿼리로 통계 또는 지표 데이터를 만들다 보면 그룹화된 데이터를 하나의 데이터로 표출해야 하는 경우가 생기게 된다. ex) 서비스를 이용하고 있는 사용자들의 이름 또는 아이디 정보를 쉼표로 구분해서 하나의 문자열로 합쳐서 보고 싶다!. 그런 경우에는 mysql에서는 group_concat 함수를 실행시키면 된다. group_concat 함수의 자세한 스펙은 다음과 같다. https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat MySQL :: MySQL 8.0 Reference Manual :: 12.20.1 Aggregate Function Descriptions MySQL 8.0 Reference Manu..
JPA와 Hibernate를 사용하고 있는 개발자라면 hibernate ddl option에 의해 엔티티 클래스가 데이터베이스에 테이블로 자동으로 생성되는 것을 알고 있을 것이다. 이때 테이블명은 여러 전략에 의해 정해지는데 기본적으로는 엔티티 클래스명을 따르고 소문자에 언더바를 넣는 전략을 선택한다. @Entity public class UserHistory{ @Id @GenerateValue(strategy = GenerationType.IDENTITY) private Long id; // ..... 기타 등등 } 위와 같이 엔티티 클래스를 작성했을 때 특별한 설정이 없었다면, Hibernate는 다음과 같은 이름으로 테이블을 생성한다. CREATE TABLE user_history ( id BIGI..
어제 회사에서 앱을 스토어에 배포하고, 버전업을 테스트하는 과정에서 서버가 버전을 제대로 비교하지 못하는 이슈가 있었다. app 버전 정보를 저장하는 DB TABLE은 다음과 같다. [ app ] app_id package_name version_name created_at 1 'com.test.mobile' '1.0.0' 2019-03-06 1:00:10.000000 2 'com.test.mobile' '1.0.1' 2019-03-07 1:00:10.000000 3 'com.test.mobile' '1.0.5' 2019-03-08 1:00:10.000000 SELECT * FROM app WHERE package_name = {target_package_name} ORDER BY version_name..