TSQL查询如何按SELECT未指定列排序且仅返回courseid列
调整方案
直接在SELECT子句中只保留courseid,同时将原来计算last_active_on的逻辑直接放到ORDER BY子句中即可,MS SQL Server支持排序依赖的字段不出现在返回结果集中。
调整后的查询语句如下:
SELECT courseid FROM mdl_logstore_standard_log WHERE eventname = '\core\event\course_viewed' GROUP BY courseid ORDER BY MAX(DATEADD(s, timecreated, '19700101 02:00:00')) DESC, courseid;
说明
原来的排序规则是按课程最近访问时间倒序、再按课程id正序,上面的语句完全沿用了这个逻辑,只是把返回列里的访问时间去掉了,计算逻辑和排序结果和你原来的查询完全一致。
内容的提问来源于stack exchange,提问作者luisdev
相关产品推荐
相关产品推荐

