Tôi có một truy vấn CTE lọc một sinh viên bảngNhiều Chọn đối với một CTE
Student
(
StudentId PK,
FirstName ,
LastName,
GenderId,
ExperienceId,
NationalityId,
CityId
)
Dựa trên một bộ lọc rất nhiều (nhiều thành phố, giới tính, nhiều kinh nghiệm (1, 2, 3), nhiều nationalites), tôi tạo ra một CTE bằng cách sử dụng sql năng động và tham gia vào bảng sinh viên với một người dùng định nghĩa bảng (CityTable, NationalityTable,...
)
Sau đó tôi phải lấy số lượng học sinh theo từng bộ lọc như
CityId City Count
NationalityId Nationality Count
Điều tương tự với bộ lọc khác.
Tôi có thể làm điều gì đó như
;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
Tôi muốn một cái gì đó giống như những gì LinkedIn đang làm với tìm kiếm (mọi người tìm kiếm, tìm kiếm việc làm)
Đó là quá nhanh và làm tương tự Điều.
NO. CTE chỉ hợp lệ ** cho câu lệnh tiếp theo (đơn) **. Nếu bạn cần "bảo toàn" dữ liệu, bạn cần phải đặt nó vào một ví dụ bảng biến hoặc bảng tạm thời. –
Đó là những gì tôi đã làm. Pb là tôi lọc bảng để chỉ hiển thị ở cuối chỉ 20 hàng trong một DataGrid (top 21) + nhóm by.it chậm với nhiều phép nối. –