fileNumber 및 version을 저장하는 다음 열이있는 테이블이 있습니다.조건에 따라 그룹 당 최대 값
id, fileNumber, version, approved (0/1) .
동일한 fileNumber의 버전이 여러 개있을 수 있습니다. 특정 파일 번호와 버전이 승인되면 승인 된 열 값은 1이됩니다.
주어진 fileNumber의 max (버전)를 확인하려면 효율적인 쿼리를 작성해야합니다. (우선 순위)에
규칙은 다음과 같습니다
1) 승인 된 버전이있는 경우, 승인 된 버전이없는 경우) =
2 일 승인 최대 (버전)을 얻을, 단순히 최대 (버전)를 얻으십시오
데이타베이스는 오라클입니다. 하위 쿼리가 필요하지 않습니다 오라클 (12C의 +)의
select * from(
SELECT
*
FROM
table
WHERE
filenumber = x
ORDER BY
approved DESC, version DESC
) a
WHERE rownum = 1
나중에 버전 :
where 절은 [approved] 열에 종속되어 있습니까? – glaeran
동일한 FileNumber에 대해 승인 된 버전이 여러 개있을 수 있습니다. 순서대로 나열된 규칙을 적용해야합니다. – user1251226