简体   繁体   English

sql查询来计算每小时的数据输入

[英]sql query to count data entry of each hour

I want to display the count of data entry of the present day during each hour(1 hour time interval) for a particular line and finally the cumulative of all the hours. 我想显示特定行的每小时(1小时时间间隔)内当前数据输入的计数,最后显示所有小时的累计。 Table details: 表详情:

CREATE TABLE [dbo].[ProductTable] (
    [Id]         INT          IDENTITY (1, 1) NOT NULL,
    [ProductID]  INT          NOT NULL,
    [EmployeeID] INT          NOT NULL,
    [Operation]  VARCHAR (50) NOT NULL,
    [Section]    NCHAR (10)   NOT NULL,
    [Line]       INT          NOT NULL,
    [Date]       DATETIME     DEFAULT (getdate()) NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC),
);

I am using Microsoft Visual Studio SQL server I have written so much but don't know to generalise for every hour 我正在使用我编写的Microsoft Visual Studio SQL服务器,但不知道每小时都要概括一下

SELECT COUNT(Id) AS Expr1
FROM ProductTable
WHERE (Line = 2)
AND (CONVERT(VARCHAR(10), Date, 105) = CONVERT(VARCHAR(10), GETDATE(), 105))
AND (DATEPART(hour, GETDATE()) BETWEEN 9 AND 10)`

ProductTable data ProductTable数据 ProductTable数据

Error on using "case" 使用“案例”时出错 使用案例时出错

it sounds like you want to group by the hour of the day 听起来你想按小时分组

SELECT      DATEPART(hour, date) as TimeOfDay,  COUNT(Id) AS Entries
FROM            ProductTable
WHERE        (Line = 2) AND cast ([date] as date) =cast (getdate() as date) 
GROUP BY DATEPART(hour, date) 

To get the cumulative of all hours of the day, use grouping sets 要获得一天中所有小时的累计,请使用分组集

      SELECT       ISNULL(cast(DATEPART(hour,[date]) as varchar(5)),'Total') as TimeOfDay, COUNT(Id) AS Entries
        FROM            ProductTable
        WHERE        (Line = 2) AND cast ([date] as date) =cast (getdate() as date)  
        GROUP BY GROUPING SETS (DATEPART(hour, [date]) , ())
ORDER BY   ISNULL(cast(DATEPART(hour, [date]) as varchar(5)),'Total')

simply use group by clause 只需使用group by子句

SELECT        COUNT(Id) AS Expr1
FROM            ProductTable 
where (Line = 2) AND (CONVERT(Date,[Date])) = CONVERT(DATE,GETDATE()) 
GROUP BY DATEPART(HOUR, Date)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM