Does “group by” automatically guarantee “order by”?

后端 未结 6 1009
予麋鹿
予麋鹿 2021-02-12 16:51

Does \"group by\" clause automatically guarantee that the results will be ordered by that key? In other words, is it enough to write:

select * 
from table
group          


        
6条回答
  •  灰色年华
    2021-02-12 17:26

    I tried it. Adventureworks db of Msdn.

    select HireDate, min(JobTitle)
    from AdventureWorks2016CTP3.HumanResources.Employee
    group by HireDate
    

    Resuts :

    2009-01-10Production Technician - WC40

    2009-01-11Application Specialist

    2009-01-12Assistant to the Chief Financial Officer

    2009-01-13Production Technician - WC50<

    It returns sorted data of hiredate, but you don't rely on GROUP BY to SORT under any circumstances.

    for example; indexes can change this sorted data.

    I added following index (hiredate, jobtitle)

    CREATE NONCLUSTERED INDEX NonClusturedIndex_Jobtitle_hireddate ON [HumanResources].[Employee]
    (
        [JobTitle] ASC,
        [HireDate] ASC
    )
    

    Result will change with same select query;

    2006-06-30 Production Technician - WC60

    2007-01-26 Marketing Assistant

    2007-11-11 Engineering Manager

    2007-12-05 Senior Tool Designer

    2007-12-11 Tool Designer

    2007-12-20 Marketing Manager

    2007-12-26 Production Supervisor - WC60

    You can download Adventureworks2016 at the following address

    https://www.microsoft.com/en-us/download/details.aspx?id=49502

提交回复
热议问题