는 내가 저장 프로 시저에 다음을 가로 질러 :Firebird 1.5에서 단일 SQL 쿼리의 개별 그룹 수를 계산합니까?
for
select 1
from scan_queue
where (date_time_locked is null )
and (scan_seqno >= :varMinScanSeqno)
and (scan_seqno <= :varMaxScanSeqno)
group by loan_id, collateral_id, insurance_id
into varNotUsed
do
varItemsToScan = varItemsToScan + 1;
내 첫번째 생각이 아마 그룹의 수를 계산하는 비효율적 인 방법이지만, 내 두 번째 생각은 이봐, 당신은 어떻게 쓸 것 "이라고했다 어쨌든 하나의 쿼리에서? " 그리고 저는 좋은 대답을하지 못했습니다. (그래서 이것은 학문적 인 문제의 더 많은 것이다.) 그래서 같은 ID를 연결 한 솔루션을 찾고하지오전 :
select count(distinct loan_id || collateral_id || insurance_id)
from scan_queue
where (date_time_locked is null )
and (scan_seqno >= :varMinScanSeqno)
and (scan_seqno <= :varMaxScanSeqno)
이 정보를 조회 할 수있는 가장 좋은 방법은 무엇입니까?
EDIT : 분명히 분명히 밝히지 않았으므로 Firebird v1.5를 사용하고 있습니다.
내가 넣어 파이어 버드 (Firebird)를 태그로 사용하지만 명확히하기 위해 필자는 파이어 버드 1.5+ RDBMS와 함께 작동하는 솔루션에 특히 관심이 있습니다. :) – Nelson
이 댓글은 질문의 일부가 될만큼 중요합니다! 파이어 버드가 DB 타입이라는 것도 알지 못했습니다! :) –
@Aviad, 귀하의 추천에 따라 질문을 업데이트했습니다. 귀하의 의견을 주셔서 감사합니다 왜냐하면 나는 비교적 새로운 여기에 태그가 충분하다고 가정했기 때문에 (이것은 실제로 제 첫 질문입니다). – Nelson