鉴于:
SELECT projectID, urlID, COUNT(1) AS totalClicks, projectPage,
(SELECT COUNT(1)
FROM tblStatSessionRoutes, tblStatSessions
WHERE tblStatSessionRoutes.statSessionID = tblStatSessions.ID
AND tblStatSessions.projectID = tblAdClicks.projectID
AND (tblStatSessionRoutes.leftPageID = tblAdClicks.projectPage OR
tblStatSessionRoutes.rightPageID = tblAdClicks.projectPage)) AS totalViews
FROM tblAdClicks
WHERE projectID IN (SELECT projectID FROM tblProjects WHERE userID = 5)
GROUP BY projectID, urlID, projectPage
我需要对它们进行排序,以便与ID = 111的所有项目在返回的数据集放在最后。
因此,例如,它可能返回:
Project ID
---------
100
100
100
156
156
143
122
111
111
111
190
154
87
但我需要的所有111对出现在列表的末尾,而无需使用两个查询,一个选择111的,另一个选择休息不够好遗憾的是,这是一个相当耗费资源的查询。
ORDER BY
CASE projectID WHEN 111 THEN 1 ELSE 0 END,
projectID /* etc... */
加
order by cast (projectID as integer)