2016-11-04 3 views
1

에 대한 보답으로 마지막 녹화 ... MySQL을 - 다음과 같은 데이터를 사용하여 각 데이터 그룹

+--------------+--------+---------------+-----------------+----------------+ 
| EQUIPMENT_ID | CML_ID | INSPECTION_NO | INSPECTION_DATE | WALL_THICKNESS | 
+--------------+--------+---------------+-----------------+----------------+ 
| B1000-V001 | 1  | 1    | 1/01/2016  | 10    | 
| B1000-V001 | 1  | 2    | 2/01/2016  | 9    | 
| B1000-V001 | 1  | 3    | 3/01/2016  | 3    | 
| B1000-V001 | 1  | 4    | 4/01/2016  | 7    | 
| B1000-V001 | 1  | 5    | 5/01/2016  | 5    | 
| B1000-V001 | 1  | 6    | 6/01/2016  | 4    | 
| B1000-V001 | 1  | 7    | 7/01/2016  | 4    | 
| B1000-V001 | 1  | 8    | 8/01/2016  | 8    | 
| B1000-V001 | 1  | 9    | 9/01/2016  | 17    | 
| B1000-V001 | 1  | 10   | 10/01/2016  | 5    | 
| B1000-X123 | 5  | 1    | 1/01/2016  | 2    | 
| B1000-X123 | 5  | 2    | 2/01/2016  | 8    | 
| B1000-X123 | 5  | 3    | 3/01/2016  | 4    | 
| B1000-X123 | 5  | 4    | 4/01/2016  | 5    | 
| B1000-X123 | 5  | 5    | 5/01/2016  | 7    | 
| B1000-P789 | 3  | 1    | 1/01/2016  | 8    | 
| B1000-P789 | 3  | 2    | 2/01/2016  | 7    | 
| B1000-P789 | 3  | 3    | 3/01/2016  | 5    | 
| B1000-P789 | 3  | 4    | 4/01/2016  | 1    | 
| B1000-P789 | 3  | 5    | 5/01/2016  | 4    | 
+--------------+--------+---------------+-----------------+----------------+ 

나는 ... 다음과 같은 결과를 생성하는 가장 빠른 방법을 원하는

+--------------+--------+---------------+-----------------+----------------+ 
| EQUIPMENT_ID | CML_ID | INSPECTION_NO | INSPECTION_DATE | WALL_THICKNESS | 
| B1000-V001 | 1  | 10   | 10/01/2016  | 5    | 
| B1000-P789 | 3  | 5    | 5/01/2016  | 4    | 
| B1000-X123 | 5  | 5    | 5/01/2016  | 7    | 
+--------------+--------+---------------+-----------------+----------------+ 

즉, GROUP BY EQUIPMENT_ID , CML_ID 및 항상 최대 검사 번호와 관련된 레코드를 반환합니다.

+1

http://stackoverflow.com/questions/3491329/group-by-with-maxdate?noredirect=1&lq=1 필요한 사항입니다. –

+0

@Ashok 감사합니다. 여기에이 문제에 대한 많은 좋은 해결책이 있습니다. – Josh

+0

Somds는 [_Groupwise max problem_] (https://mariadb.com/kb/en/mariadb/groupwise-max-in-mariadb/)와 같습니다. –

답변

0

아래의 쿼리를 사용해보십시오.

Select a.Equipment_ID, a.CML_ID, b.INSPECTION_NO,a.INSPECTION_DATE, a.WALL_THICKNESS 
    from 
    #YourTable a inner join 
    (
    Select Equipment_ID, CML_ID, max(INSPECTION_NO)as INSPECTION_NO 
    from #YourTable 
    Group By Equipment_ID,CML_ID 
    ) b 
    on a.Equipment_ID=b.Equipment_ID and a.CML_ID=b.CML_ID and a.INSPECTION_NO=b.INSPECTION_NO 
    order by a.Equipment_ID 

SQL_FIDDLE : DEMO

질문이나 문제가 있으면 알려 주시기 바랍니다.

+0

응답에 감사하지만 딸기와 ashok은 이미 응답을 제공했습니다. – Josh

관련 문제