Tengo la siguiente consulta:Contar filas totales con un grupo de
select count(ords.TRACKING_NUM)
from Orders ords (NoLock)
group by ords.TRACKING_NUM
having count(distinct ords.ORDER_NUM) = 4
lo quiero para recuperar la cantidad total de TRACKING_NUMs que tienen 4 ORDER_NUMs en ellos (debe ser de 3352). En cambio, obtengo 3.352 filas iguales a 4 (o más debido a lo distinto).
Entiendo por qué sucede esto. Está contando los valores dentro de cada grupo por. Y puedo cambiar fácilmente la consulta a este:
select ords.TRACKING_NUM
from Orders ords (NoLock)
group by ords.TRACKING_NUM
having count(distinct ords.ORDER_NUM) = 4
y luego obtener 3.352 filas de TRACKING_NUMs volvieron a mí. Sin embargo, esto no es muy efectivo en mi base de datos (tarda unos 41 segundos). Lo que realmente necesito es una consulta que me dé un conteo y solo un conteo (y al hacerlo espero que vaya más rápido).
Gracias por cualquier sugerencia.
Al ejecutar esto en SSMS aparece el siguiente error: Msg 170, nivel 15, estado 1, línea 7 Línea 7: sintaxis incorrecta cerca de ')'. – Vaccano
Si lo ejecuto en ApexSQL Edit obtengo este error: Msg 156, Nivel 15, Estado 1, Ocurrió en línea: 10 Sintaxis incorrecta cerca de la palabra clave 'set'. – Vaccano
Sí, las tablas derivadas necesitan un alias –