[SQL] SQL은 : 그룹 당 최대 기록을 찾기 [중복]
SQLSQL은 : 그룹 당 최대 기록을 찾기 [중복]
나는 세 개의 필드와 데이터가 하나 개의 테이블을 가지고있다.
Name , Top , Total cat , 1 , 10 dog , 2 , 7 cat , 3 , 20 horse , 4 , 4 cat , 5 , 10 dog , 6 , 9
나는 나의 결과는 다음과 같이해야하므로, 각 이름에 대한 총의 가장 높은 값을 갖는 레코드를 선택합니다 :
Name , Top , Total cat , 3 , 20 horse , 4 , 4 Dog , 6 , 9
나는 총에 의해 이름 순서에 따라 그룹을 시도하지만 결과에 의해 그룹의 최상위 기록을 제공합니다. 사람이 제발 안내 수 있습니까?
해결법
-
==============================
1.
select Name, Top, Total from sometable where Total = (select max(Total) from sometable i where i.Name = sometable.Name)
또는
select Name, Top, Total from sometable inner join ( select max(Total) Total, Name from sometable group by Name ) as max on max.Name = sometable.Name and max.Total = sometable.Total
-
==============================
2.당신은 뭔가를 시도 할 수 있습니다
당신은 뭔가를 시도 할 수 있습니다
SELECT s.* FROM sometable s INNER JOIN ( SELECT Name, MAX(Total) MTotal FROM sometable GROUP BY Name ) sMax ON s.Name = sMax.Name AND s.Total = sMax.MTotal
-
==============================
3.또는 사용하여 두 테이블에 존재하는 유일한 행을 반환 느릅 나무 절을, 존재
또는 사용하여 두 테이블에 존재하는 유일한 행을 반환 느릅 나무 절을, 존재
SELECT * from sometable T where exists (select 1 from (SELECT nombre, max(total) as total FROM sometable TT GROUP by nombre) TT where T.name=TT.name and T.total=TT.total )
from https://stackoverflow.com/questions/2657482/sql-find-the-max-record-per-group by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 읽기 커밋과 반복 읽기의 차이 (0) | 2020.03.29 |
---|---|
[SQL] 오라클 SQL - 열의 최대 5 개 값을 검색하는 방법 (0) | 2020.03.29 |
[SQL] 왜 IDENTITY 열 값이 차이는 무엇입니까? (0) | 2020.03.29 |
[SQL] 저장 프로 시저 파라미터리스트의 발현 (예를 들면 함수 호출)의 결과를 이용? (0) | 2020.03.29 |
[SQL] 어떻게 필드의 고유 항목 Access 쿼리에서 계산합니까? (0) | 2020.03.29 |