微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在SQL中按时间分组

如何解决如何在SQL中按时间分组

假设使用sql Server 2008或更高版本:

SELECT 
  [Date] = CONVERT(DATE, LogDate), 
  [Sum] = COUNT(*)
FROM dbo.Log_Table_Name
WHERE [Type] = 'DBError'
GROUP BY CONVERT(DATE, LogDate)
ORDER BY [Date];

解决方法

我正在使用2个步骤的应用程序。

  • 扫描日志并将其中的数据持久保存在数据库中。
  • 从数据库读取数据并可视化数据。

第一步或多或少已经完成。我尝试通过第二步来解释背景和要求。

数据库中的每一行都包含一些信息,例如logdate,logfilename,LogType,logMessage等。因此,我想例如编写SQL来总结每天的给定LogType。

这是列:

[LogDate] [datetime] NOT NULL,[Computer] [varchar](50) NOT NULL,[Type] [varchar](50) NOT NULL,[FileName] [varchar](100) NOT NULL,[LineNo] [int] NOT NULL,[UserName] [varchar](50) NOT NULL,[Message] [varchar](max) NOT NULL,

我想如果我想显示Type = TDBError的所有行,输出可能是这样的:

Date        Sum
2012-10-01  3
2012-10-02  12
2012-10-03  40
2012-10-05  24
2012-10-06  18

因此,在2012年10月1日,数据库中有3行,其中Type = TDBError。截至2012年10月2日,共有12个,等等。

我应该如何为此编写SQL?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。