如何在SQL中按列分组?

Pen*_*uen 1 sql sql-server sql-server-2005

我怎样才能按时间分组?我尝试了这个,但它给出了错误"无效的列名'时间'.":

select Count(Page) as VisitingCount, CONVERT(VARCHAR(5), Date, 108) as [Time]
from scr_SecuristLog   
where Date between '2009-05-04 00:00:00' and '2009-05-06 14:58'  
and [user] in (select USERNAME from scr_CustomerAuthorities)  
group by [Time] order by [VisitingCount] asc
Run Code Online (Sandbox Code Playgroud)

Epp*_*ppz 8

尝试

GROUP BY CONVERT(VARCHAR(5),Date, 108)
Run Code Online (Sandbox Code Playgroud)

始终确保您对select子句中没有聚合函数的所有内容进行分组.


Edw*_*ard 6

[时间]是列别名.尝试

SELECT 
      COUNT(Page) AS VisitingCount
    , CONVERT(VARCHAR(5),Date, 108) AS [Time] 
FROM
    scr_SecuristLog   
WHERE
    Date BETWEEN '2009-05-04 00:00:00' AND '2009-05-06 14:58'  
    AND
    [user] IN (
                SELECT 
                    USERNAME             
                FROM
                    scr_CustomerAuthorities 
                )  
GROUP BY
    CONVERT(VARCHAR(5),Date, 108) 
ORDER BY
    [VisitingCount] ASC 
Run Code Online (Sandbox Code Playgroud)