Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Swift
- union
- MINUS
- Kotlin
- elementAt
- Service
- animation
- 생명주기
- map
- mongoose
- vuex
- LiveData
- Foreign Key
- Interface
- ReactNative
- Generic
- CLASS
- ConstraintLayout
- recyclerview
- react native
- list
- function
- Filter
- AWS
- class component
- lifecycle
- docker
- collection
- enum
- docker-compose
Archives
- Today
- Total
개발 일기
GROUP BY ? 본문
GROUP BY을 통해서 데이터의 중복을 제거를 할수가 있습니다.
또한 ( COUNT , MIN , MAX , SUM , AVG ) 등등 같이 자주 사용이 됩니다.
[예시]
다음과 같이 이러면 LastName으로 중복된 값을 제거후 노출 합니다.
SELECT PersonId , FristName , LastName
FROM persons
GROUP BY LastName;
//아래에서는 중복된 값을 제거 후 총 개수를 가져옵니다.
SELECT COUNT(*)
FROM persons
GROUP BY LastName;
[주의사항]
만약에 이런식으로 "SELECT list is not in GROUP BY clause and contains nonaggregated column" 에러가 나온다면
mysql 5.7 부터 only_full_group_by 추가가 되었으므로 해결 방안은 다음과 같이 있습니다.
- nonaggregated column 추가
- 서브 쿼리 사용
- ANY_VALUE 사용
- ONLY_FULL_GROUP_BY 설정 변경
Having ?
Having 절은 그룹화 해서 가져온 데이터에 조건을 설정을 할수 있습니다.
[예시]
다음은 Age가 11일때에만 조건을 포함시킵니다.
SELECT ANY_VALUE(PersonId) AS PersonId , ANY_VALUE(FirstName) AS FirstName , ANY_VALUE(Age) AS Age
FROM persons
GROUP BY LastName
having Age = 11;
'DB > mysql' 카테고리의 다른 글
TRUNCATE + FOREIGN KEY (0) | 2020.05.18 |
---|---|
Union ? (0) | 2020.05.02 |
MYSQL JOIN ? (0) | 2020.04.30 |
CREATE View? (0) | 2020.04.29 |
MYSQL Date Format ? (0) | 2020.04.28 |
Comments