group by 与 order by
USE [mydb]
go
WITH w AS(
SELECT TOP 6 InfoId FROM(
SELECT InfoId FROM(
SELECT TOP 6
b.InfoId
FROM dbo.[BrowseLog] b,dbo.[Info] i
WHERE b.InfoId=i.InfoId
AND i.CityId=3
GROUP BY b.InfoId
ORDER BY MAX(b.BrowseId)
DESC
) i1
UNION
SELECT InfoId FROM(
SELECT TOP 6
InfoId
FROM dbo.[Info]
WHERE CityId=3
ORDER BY InfoId DESC
) i2
) u
ORDER BY InfoId ASC
)
SELECT
w.InfoID
,i.[desc]
,i.small_pic_url
,s.SiteUrl
,s.SiteName
FROM w,dbo.[Info] i,dbo.[Site] s
WHERE w.InfoId=i.InfoId
AND i.SiteId=s.SiteId
ORDER BY w.InfoId DESC;
直接写 ORDER BY b.BrowseId DESC 是不行的,语法错误,用了MAX()以后就可以了。其含义,就是用每个分组里面,browseId的最大值来排序。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步