按月排序Sql查询

hel*_*p11 3 sql sql-server sql-date-functions

我有一个SQL查询:

select dateName(month, DateAccessed) "Month"
, count(1) totalVisits
, count(distinct l.userName) UsersVisit
from and where clause goes here
group by dateName(monthDateAccessed)
order by Month
Run Code Online (Sandbox Code Playgroud)

我得到的输出是

Month   totalVisits   UsersVisit
April         100       25
February      200       35
July          300       45
March         400       55
May           500       65
Run Code Online (Sandbox Code Playgroud)

但我想要的输出是这样的:

February      200       35
March         400       55
April         100       25
May           500       65
July          300       45
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这个?

jpw*_*jpw 5

二者必选其一month(DateAccessed)datepart(month, DateAccessed)提取月份数和使用中order by的条款.但是,您还必须将其添加到该group by子句中:

SELECT 
    DATENAME(month, DateAccessed) "Month", 
    COUNT(1) totalVisits, 
    COUNT(DISTINCT l.userName) UsersVisit 
FROM and where clause goes here
GROUP BY 
    MONTH(dateaccessed), 
    DATENAME(month, DateAccessed)
ORDER BY 
    MONTH(dateaccessed);
Run Code Online (Sandbox Code Playgroud)

如果您的数据保存超过一年的数据,您应该在group-和order by子句(和select语句)中包含年份,如果您还没有确保只在where子句中获得一年的数据.