如何解决如何在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 举报,一经查实,本站将立刻删除。