ID가 7434 인 경우 batchno
의 행이 8999 개 인 테이블 "batchtracing
"이 있습니다. 이 테이블에 DISTINCT batchno
을 원합니다. 모든 DISTINCT batcho
에 대해 47 행이 있습니다. 각 batchno
에 대해 MAX (ID)를 얻고 싶지만 모든 행에 대해 확인하고 싶습니다.동일한 쿼리 SQL에서 distinct 및 MAX (id)를 사용하는 방법?
내 질문은 : 나는 이것을 시도하지만, 모든 DISTINCT batchno
에 대한 MAX (ID)를 가질 수하는 내 솔루션이 아닌 방법이 열 ID에서 모든 행에 같은 값 저를 넣어.
SELECT DISTINCT batchno,
(SELECT MAX(id) AS Expr1
FROM batchtracing) AS id
FROM batchtracing AS batchtracing_1
WHERE (contentid = '7434')
내가 원하는 것을 얻으려면 3 개의 쿼리를 사용해야하지만 천천히 있기 때문에 하나만 원한다. 내가 지금 무엇 :
Step 1: SELECT DISTINCT batchno, batchstatus FROM batchTracing WHERE (contentid = " & contentid & ") AND (batchstatus = 'active') ORDER BY batchno
Step 2:SELECT MAX(id) AS Expr1 FROM batchTracing WHERE (batchno = '" & batchno & "') AND (contentid = '" & contentid & "')
Step 3: SELECT batchstatus FROM batchtracing WHERE id = batchTracingID
이 방법은 매우 천천히 그리고 난 그냥 하나의 쿼리가이 모든 결과를하고자합니다.
내 생각으로 할 수 있다고 생각하십니까? 이 예제에서 이해할 수 없음 – Vladut
contentid = '7434') – Vladut
@Vladut에 대한 예제가 하나 필요합니다.이 쿼리는 batchtracing에서 batchno 당 가장 높은 ID를 가진 행을 가져옵니다. 따라서이 쿼리는 상태 추적 등을 얻을 수 있습니다. 'where contentid = '7434'를 서브 쿼리에 추가하면됩니다. – SqlZim