반응형
mysql
+그룹별로 처음 나오는 하나의 줄만 뽑아낼때
ex) CAT_ID가 같은 것들끼리 묶어서 그룹별 처음으로 나온 레코드만 그룹 대표로 하나씩 추출한다.
select * from TABLE_A group by CAT_ID ;
그룹 내에서 어떤 키로 소팅하여 최신 값을 뽑는 경우, min, max 함수등을 이용하거나 미리 order by로 정렬 후 group by로 한다.
ex)
select * from (select * from TABLE_A order by NAME desc) a group by a.CAT_ID ;
select CAT_ID, min(NAME) from TABLE_A group by CAT_ID ;
+ group by 에러
only_full_group_by 에러가 발생.
=> mysql 5.7이상 부터 group by로 select 할 때 다른 값들이 있는 컬럼들을 조회하면 에러 발생.
처음 나온 것들을 자동으로 선택하여 조회하게 하려면 서버 설정을 바꿔주어야 한다.
/etc/mysql/my.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
위와 같이 설정을 추가하여 서비스 재시작
service mysql restart
'Develop > DB' 카테고리의 다른 글
Mysql 두 개의 테이블(또는 자신)에서 다른 값(불일치) 찾기 (0) | 2019.08.26 |
---|---|
[mysql] 쿼리시 스트링을 수타입으로 정렬하기 (0) | 2019.04.11 |
mysql 사용자 정의 변수 사용 (0) | 2018.07.13 |
mysql select 한 데이터를 insert/update하기 (0) | 2018.07.12 |
그룹별 개수 조회 by 초 단위 (0) | 2018.05.30 |