[SQL] 가장 최근의 날짜를 기준으로 SQL 선택 행
SQL가장 최근의 날짜를 기준으로 SQL 선택 행
다음 쿼리 결과를 사용하여, 나는 ChargeId 및 ChargeType가 고유 가장 최근의 항목을 찾고 있어요.
select chargeId, chargeType, serviceMonth from invoice
CHARGEID CHARGETYPE SERVICEMONTH
1 101 R 8/1/2008
2 161 N 2/1/2008
3 101 R 2/1/2008
4 101 R 3/1/2008
5 101 R 4/1/2008
6 101 R 5/1/2008
7 101 R 6/1/2008
8 101 R 7/1/2008
원하는 :
CHARGEID CHARGETYPE SERVICEMONTH
1 101 R 8/1/2008
2 161 N 2/1/2008
해결법
-
==============================
1.당신은 유형과 ID로 그룹 항목에 GROUP BY를 사용할 수 있습니다. 그럼 당신은 최신 서비스 월 얻기 위해 MAX () 집계 함수를 사용할 수 있습니다. ChargeId, ChargeType 및 MostRecentServiceMonth 가진 반환 아래의 결과 집합
당신은 유형과 ID로 그룹 항목에 GROUP BY를 사용할 수 있습니다. 그럼 당신은 최신 서비스 월 얻기 위해 MAX () 집계 함수를 사용할 수 있습니다. ChargeId, ChargeType 및 MostRecentServiceMonth 가진 반환 아래의 결과 집합
SELECT CHARGEID, CHARGETYPE, MAX(SERVICEMONTH) AS "MostRecentServiceMonth" FROM INVOICE GROUP BY CHARGEID, CHARGETYPE
-
==============================
2.이되지 않도록 요청자는 요청했지만 그것은 "가장 최근의 날짜 별 SQL 선택 행"에 대한 답이 무엇인지.
이되지 않도록 요청자는 요청했지만 그것은 "가장 최근의 날짜 별 SQL 선택 행"에 대한 답이 무엇인지.
http://wiki.lessthandot.com/index.php/Returning_The_Maximum_Value_For_A_Row에서 수정
SELECT t.chargeId, t.chargeType, t.serviceMonth FROM( SELECT chargeId,MAX(serviceMonth) AS serviceMonth FROM invoice GROUP BY chargeId) x JOIN invoice t ON x.chargeId =t.chargeId AND x.serviceMonth = t.serviceMonth
-
==============================
3.
SELECT chargeId, chargeType, MAX(serviceMonth) AS serviceMonth FROM invoice GROUP BY chargeId, chargeType
-
==============================
4.나는 개발자의 대부분이 큰 데이터에 대한 그것의 영향을 보지 않고 인라인 쿼리 사용을 참조하십시오.
나는 개발자의 대부분이 큰 데이터에 대한 그것의 영향을 보지 않고 인라인 쿼리 사용을 참조하십시오.
간단한 당신이를함으로써 달성 할 수있다 :
select a.chargeId, a.chargeType, a.serviceMonth from invoice a left outer join invoice b on a.chargeId=b.chargeId and a.serviceMonth <b.serviceMonth where b.chargeId is null order by a.serviceMonth desc
-
==============================
5.
select to.chargeid,t0.po,i.chargetype from invoice i inner join (select chargeid,max(servicemonth)po from invoice group by chargeid)t0 on i.chargeid=t0.chargeid
별개의 충전 ID가이 간단한 쿼리를 고려하여 약간의 성능 시간에 도움이 다른 chargetype의 combinations.Hope이있는 경우 위의 쿼리가 작동합니다 ...
from https://stackoverflow.com/questions/189213/sql-selecting-rows-by-most-recent-date by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 행의 PostgreSQL에있는 경우 빠른 검사 (0) | 2020.04.28 |
---|---|
[SQL] 어떻게 오라클에서 값 목록에서 선택할 수 있습니다 (0) | 2020.04.28 |
[SQL] 파티션 기능 COUNT () OVER 가능 DISTINCT 사용 (0) | 2020.04.28 |
[SQL] SQL은 : 레코드가 존재하는 경우 어떻게 제대로 확인 (0) | 2020.04.28 |
[SQL] 삭제 "열이 존재하지 않습니다" (0) | 2020.04.28 |