Sql server 从同一ID号获取DATEDIFF结果的平均值
这是我目前的桌子 员工将有多个订单日期和发货日期。我想得到的是每个员工的差异总和的平均值 一直在为如何实现这一目标而挣扎 这就是我到目前为止所做的Sql server 从同一ID号获取DATEDIFF结果的平均值,sql-server,Sql Server,这是我目前的桌子 员工将有多个订单日期和发货日期。我想得到的是每个员工的差异总和的平均值 一直在为如何实现这一目标而挣扎 这就是我到目前为止所做的 USE Northwind SELECT e.EmployeeID, e.LastName, o.OrderDate, o.ShippedDate, DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as Diff FROM Employees as
USE Northwind
SELECT
e.EmployeeID,
e.LastName,
o.OrderDate,
o.ShippedDate,
DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as Diff
FROM
Employees as e
JOIN Orders as o ON e.EmployeeID = o.EmployeeID
如果在结果集中需要的不仅仅是EmployeeId
,请按如下方式加入:
select
e.EmployeeId
e.LastName,
a.AvgDiff
From
Employees as e
Join (SELECT
e.EmployeeID,
AVG(CAST(DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as float)) as AvgDiff
FROM
Employees as e
JOIN Orders as o ON e.EmployeeID = o.EmployeeID
Group By e.EmployeeID) a ON a.EmployeeId = e.EmployeeId
如果在结果集中需要的不仅仅是EmployeeId
,请按如下方式加入:
select
e.EmployeeId
e.LastName,
a.AvgDiff
From
Employees as e
Join (SELECT
e.EmployeeID,
AVG(CAST(DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as float)) as AvgDiff
FROM
Employees as e
JOIN Orders as o ON e.EmployeeID = o.EmployeeID
Group By e.EmployeeID) a ON a.EmployeeId = e.EmployeeId
谢谢你,米奇!我正在编辑这篇文章,然后你顺道来了。谢谢你,米奇!我正在编辑文章,然后你顺道过来。这将排除所有空行,对吗?谢谢你的帮助!这将排除所有空行,对吗?谢谢你的帮助!
select
e.EmployeeId
e.LastName,
a.AvgDiff
From
Employees as e
Join (SELECT
e.EmployeeID,
AVG(CAST(DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as float)) as AvgDiff
FROM
Employees as e
JOIN Orders as o ON e.EmployeeID = o.EmployeeID
Group By e.EmployeeID) a ON a.EmployeeId = e.EmployeeId