54 lines
1015 B
SQL
54 lines
1015 B
SQL
SELECT
|
|
P.Id,
|
|
P.[Name],
|
|
P.Navigation,
|
|
P.[Description],
|
|
P.Revision,
|
|
P.CreatedByUserId,
|
|
P.CreatedDate,
|
|
P.ModifiedByUserId,
|
|
P.ModifiedDate,
|
|
@PageSize as PaginationPageSize,
|
|
(
|
|
SELECT
|
|
CAST((Count(0) + (@PageSize - 1.0)) / @PageSize AS INTEGER)
|
|
FROM
|
|
Page as P
|
|
WHERE
|
|
P.Id IN
|
|
(
|
|
SELECT
|
|
PT.PageId
|
|
FROM
|
|
PageTag as RootTags
|
|
LEFT OUTER JOIN PageTag as PT
|
|
ON PT.Tag = RootTags.Tag
|
|
WHERE
|
|
RootTags.PageId = @PageId
|
|
GROUP BY
|
|
PT.PageId
|
|
HAVING
|
|
((Count(0) / (SELECT COUNT(0) FROM PageTag as iP WHERE iP.PageId = @PageId)) * 100.0) >= @Similarity
|
|
)
|
|
) as PaginationPageCount
|
|
FROM
|
|
Page as P
|
|
WHERE
|
|
P.Id IN
|
|
(
|
|
SELECT
|
|
PT.PageId
|
|
FROM
|
|
PageTag as RootTags
|
|
LEFT OUTER JOIN PageTag as PT
|
|
ON PT.Tag = RootTags.Tag
|
|
WHERE
|
|
RootTags.PageId = @PageId
|
|
GROUP BY
|
|
PT.PageId
|
|
HAVING
|
|
((Count(0) / (SELECT COUNT(0) FROM PageTag as iP WHERE iP.PageId = @PageId)) * 100.0) >= @Similarity
|
|
)
|
|
LIMIT @PageSize
|
|
OFFSET (@PageNumber - 1) * @PageSize
|