Ho una domanda CTE filtrare una tabella Studentmultipla Selezionare l'uno contro l'CTE
Student
(
StudentId PK,
FirstName ,
LastName,
GenderId,
ExperienceId,
NationalityId,
CityId
)
Sulla base di un sacco di filtri (più città, genere, molteplici esperienze (1, 2, 3), più nationalites), I creare un CTE utilizzando SQL dinamico e unirsi al tavolo studente con un utente definito tabelle (CityTable, NationalityTable,...
)
Dopo che devo recuperare il conteggio di studenti da ogni filtro come
CityId City Count
NationalityId Nationality Count
La stessa cosa dell'altro filtro.
Posso fare qualcosa di simile
;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
voglio qualcosa di simile a ciò che LinkedIn sta facendo con la ricerca (ricerca persone, ricerca di lavoro)
E 'così veloce e fare lo stesso cosa.
NO. Un CTE è valido solo ** per la successiva (singola) istruzione **. Se è necessario "conservare" i dati, è necessario inserirli in un e.g. tabella variabile o tabella temporanea. –
Questo è quello che sto già facendo. Il pb è che io filtro la tabella per mostrare solo alla fine solo 20 righe in un datagrid (top 21) + il gruppo by.it è lento con più join. –