tengo una consulta CTE filtrar un estudiante tablaSelección múltiple contra un CTE
Student
(
StudentId PK,
FirstName ,
LastName,
GenderId,
ExperienceId,
NationalityId,
CityId
)
Sobre la base de un filtro de lote (varias ciudades, el género, las múltiples experiencias (1, 2, 3), múltiples nationalites), I crear un CTE mediante el uso de SQL dinámico y unirse a la mesa de estudiante con un definidos por el usuario (tablas) CityTable, NationalityTable,...
Después de que tengo que recuperar el recuento del estudiante por cada filtro como
CityId City Count
NationalityId Nationality Count
Lo mismo que el otro filtro.
¿Puedo hacer algo como
;With CTE(
Select
FROM Student
Inner JOIN ...
INNER JOIN ....)
SELECT CityId,City,Count(studentId)
FROm CTE
GROUP BY CityId,City
SELECT GenderId,Gender,Count
FROM CTE
GROUP BY GenderId,Gender
Quiero algo así como lo que LinkedIn está haciendo con la búsqueda (búsqueda de personas, la búsqueda de empleo)
Es tan rápido y hacer lo mismo cosa.
NO. Un CTE es válido solo ** para el siguiente enunciado (único) **. Si necesita "preservar" los datos, debe ponerlos en, por ej. tabla variable o tabla temporal. –
Eso es lo que ya estoy haciendo. El pb es que filtro la tabla para mostrar solo al final solo 20 filas en una cuadrícula de datos (top 21) + el grupo by.it es lento con varias uniones. –