SQL组,按天计算 [英] SQL group by day, with count

查看:148
本文介绍了SQL组,按天计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  CREATE TABLE [dbo]。[RefundProcessLog ](
[LogId] [bigint] IDENTITY(1,1)NOT NULL,
[LogDate] [datetime] NOT NULL,
[LogType] [varchar](10)COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[RefundId] [int] NULL,
[RefundTypeId] [smallint] NULL,
[LogMessage] [varchar](1000)COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[LoggedBy ] [varchar](50)COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
CONSTRAINT [PK_RefundProcessLog] PRIMARY KEY CLUSTERED

[LogId] ASC
)ON [PRIMARY]
) ON [PRIMARY]

GO

我想要的是结果列表它表示每天处理多少个不同的refundids,抛出任何NULL。



我需要编写什么SQL来产生这些结果?

$ b $我喜欢这种方法(MS SQL):

 

SELECT
转换(char(8),LogDate,112),
count(独特的RefundId)
FROM RefundProcessing
GROUP BY Convert(char(8) ,LogDate,112)


I've got a log table in SQL Server that looks like this:

CREATE TABLE [dbo].[RefundProcessLog](
 [LogId] [bigint] IDENTITY(1,1) NOT NULL,
 [LogDate] [datetime] NOT NULL,
 [LogType] [varchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 [RefundId] [int] NULL,
 [RefundTypeId] [smallint] NULL,
 [LogMessage] [varchar](1000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 [LoggedBy] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 CONSTRAINT [PK_RefundProcessLog] PRIMARY KEY CLUSTERED 
(
 [LogId] ASC
) ON [PRIMARY]
) ON [PRIMARY]

GO

What I want is a list of results that represents how many different refundids were processed each day, throwing out any NULLs.

What SQL would I need to write to produce these results?

解决方案

I like this approach in (MS SQL):

SELECT 
  Convert(char(8), LogDate, 112),
  count(distinct RefundId)
FROM RefundProcessing
GROUP BY Convert(char(8), LogDate, 112)

这篇关于SQL组,按天计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆