T-SQL按日期分组,但我希望显示查询完整日期
我想显示日期字段不能分组 我的问题是:T-SQL按日期分组,但我希望显示查询完整日期,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我想显示日期字段不能分组 我的问题是: SELECT DAY(T1.UI_CreateDate) AS DATEDAY, SUM(1) AS TOTALCOUNT FROM mydb.dbo.LP_UseImpression T1 WHERE T1.UI_BR_BO_ID = 45 GROUP BY DAY(T1.UI_CreateDate) 结果: DATEDAY TOTALCOUNT ----------- ----------- 15 186 9
SELECT DAY(T1.UI_CreateDate) AS DATEDAY, SUM(1) AS TOTALCOUNT
FROM mydb.dbo.LP_UseImpression T1 WHERE T1.UI_BR_BO_ID = 45
GROUP BY DAY(T1.UI_CreateDate)
结果:
DATEDAY TOTALCOUNT
----------- -----------
15 186
9 1
3 2
26 481
21 297
27 342
18 18
30 14
4 183
25 553
13 8
22 469
16 1
17 28
20 331
28 90
14 33
8 1
但我想展示完整的日期
示例结果:
DATEDAY TOTALCOUNT
----------- -----------
15/06/2015 186
9/06/2015 1
3/06/2015 2
26/06/2015 481
21/06/2015 297
27/06/2015 342
18/06/2015 18
30/06/2015 14
4/06/2015 183
25/06/2015 553
13/06/2015 8
22/06/2015 469
16/06/2015 1
17/06/2015 28
20/06/2015 331
28/06/2015 90
14/06/2015 33
8/06/2015 1
我想看看结果。。。
我无法得到一种结果
我该怎么办
塔克斯 直接转换到
日期
删除任何时间组件如何:
SELECT CAST(T1.UI_CreateDate as DATE) AS DATEDAY, COUNT(*) AS TOTALCOUNT
FROM mydb.dbo.LP_UseImpression T1
WHERE T1.UI_BR_BO_ID = 45
GROUP BY CAST(T1.UI_CreateDate as DATE)
ORDER BY DATEDAY;
用于计算计数的总和(1)。但是,由于SQL具有
COUNT(*)
函数,这似乎有点尴尬。因此您可以按天(T1.UI\u CreateDate)
分组,或者使用完整日期进行分组。但这些是不同的。因为这两个日期'2015-04-15'
和'2015-12-15'
产生的日值相同
假设您希望按日期分组,而不是按日期分组,请尝试以下版本的查询:
SELECT DISTINCT
T1.UI_CreateDate as DATEDAY,
count(1) over (PARTITION BY DAY(T1.UI_CreateDate) ) AS TOTALCOUNT
FROM mydb.dbo.LP_UseImpression T1 WHERE T1.UI_BR_BO_ID = 45
sql FIDLE for demo:您的查询将获取日期字段,从中获取月份的日期,然后根据该日期进行分组。因此,每个月的第一个日期都被分组在一起。但是你问结果包括完整的日期?这是否意味着您不想按月份的日期分组,而是希望按包括月份在内的日期分组?(1月1日和2月1日不在一起?)