Ich lief über die folgenden in einer gespeicherten Prozedur:Anzahl der verschiedenen Gruppen in einer einzigen SQL-Abfrage in Firebird 1.5 erhalten?
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;
Mein erster Gedanke war, dass dies die Anzahl der Gruppen zu zählen, aber mein zweiter Gedanke war wahrscheinlich ein ineffizienter Weg ist: „Hey, wie würden Sie schreiben dass in einer einzigen Abfrage überhaupt? " Und ich hatte keine gute Antwort. (Das ist also eher eine akademische Frage.) Ich bin nicht Suche nach einer Lösung, die die IDs verknüpft, etwa so:
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)
Was ist der beste Weg, um diese Informationen abzufragen?
BEARBEITEN: Da ich das anscheinend nicht klar genug gemacht habe, verwende ich Firebird v1.5.
Ich habe Firebird als Tag, aber nur zur Klärung, ich bin speziell an einer Lösung interessiert, die mit Firebird 1.5+ RDBMS funktioniert. :) – Nelson
Dieser Kommentar ist wichtig genug, um ein Teil der Frage zu sein! Ich wusste gar nicht, dass Firebird ein DB-Typ war! :) –
@Aviad, ich aktualisierte die Frage gemäß Ihrer Empfehlung. Danke für deinen Kommentar, weil ich hier relativ neu bin und angenommen habe, das Tag wäre ausreichend (das ist eigentlich meine erste Frage). – Nelson