0
使用:SQL Server 2008 R2的SQL - 收集最古老和最新纪录,并获得天之间
是否有可能,不使用CTE,以获得最古老和最新的记录,然后得到的天(DATEDIFF)在一个SELECT语句中?
为了澄清,这是我目前的SELECT语句:
SELECT
COUNT(*) as 'Sessions',
MAX(f_sessiondate) AS 'Latest',
MIN(f_sessiondate) as 'Oldest'
所以,说我得到以下结果
Sessions Latest Oldest
2610 2014-10-28 00:00:00.000 2013-12-23 00:00:00.000
我想是得到“平均会话每一天”在“最新”和“最旧”条目之间做一个DATEDIFF。所以'天'是309,而“每天平均会话”将是8.45(四舍五入)。
编辑:
靠运气的一些行程,我得到它的工作在一定程度上,虽然我很想念我的小数。以下是我添加的内容:
CAST(COUNT(*)/DATEDIFF(day, MIN(f_sessiondate),MAX(f_sessiondate)) as DECIMAL(18,2)) as 'Average Sessions Fixed',
根据以上(更新后)的数字,我会得到8.44(309天)的结果。但是,SQL给了我8.00的结果。我怎样才能得到正确的小数?
由于提前,
Beems
您应该将您的点数(*)作为小数点。 – Will 2014-10-29 16:04:38
CAST(cast(COUNT(*)为十进制)/ DATEDIFF .....) – Will 2014-10-29 16:06:48
这样做了,谢谢。你能否将其作为正式答复发布,以便我可以标记它? – Beems 2014-10-29 16:08:22