group by 与 order by的用法一例

发布时间:2020-05-08编辑:脚本学堂
group by 与 order by的用法一例

先看如下sql语句:
 

复制代码 代码如下:

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的最大值来排序。

>>> 您可能感兴趣的文章:
sql server中Group By语句的用法
sql server中group by的用法详解
有关distinct 多列问题结合group by的解决方法