Ho la seguente query:Contare le righe totali con un gruppo da
select count(ords.TRACKING_NUM)
from Orders ords (NoLock)
group by ords.TRACKING_NUM
having count(distinct ords.ORDER_NUM) = 4
voglio che per recuperare la quantità totale di TRACKING_NUMs che hanno 4 ORDER_NUMs su di loro (dovrebbe essere 3.352). Invece ottengo 3.352 righe pari a 4 (o più a causa del distinto).
Capisco perché questo sta accadendo. Sta contando i valori all'interno di ogni gruppo di. E posso facilmente modificare la query a questo:
select ords.TRACKING_NUM
from Orders ords (NoLock)
group by ords.TRACKING_NUM
having count(distinct ords.ORDER_NUM) = 4
e poi ottenere 3.352 file di TRACKING_NUMs tornati a me. Tuttavia, questo non è molto performante nel mio database (richiede circa 41 secondi). Quello di cui ho veramente bisogno è una query che mi dia un conteggio e solo un conteggio (e facendo ciò si spera vada più veloce).
Grazie per eventuali suggerimenti.
L'esecuzione di questo in SSMS restituisce il seguente errore: Msg 170, livello 15, stato 1, riga 7 Riga 7: sintassi errata vicino a ")". – Vaccano
Se lo eseguo in ApexSQL Edit ottengo questo errore: Msg 156, livello 15, stato 1, in linea: 10 Sintassi errata vicino alla parola chiave 'set'. – Vaccano
Sì, le tabelle derivate richiedono un alias –