SQL 将第三个值添加到 SELECT 时加入不起作用
SQL Join is not working when adding a third value to SELECT
慢慢地疯狂想知道为什么我的 SQL 查询使用 2 个 SELECT 变量,而不是 3 个。这正在 Solarwinds 中使用。
SELECT TOP 20 ROUND(AVG(t1.Availability), 2) as Average_Availability, t2.Caption as Node_Name
FROM Orion.ResponseTime t1
LEFT JOIN Orion.Nodes t2 ON t1.NodeID=t2.NodeID
GROUP BY Node_Name ORDER BY Average_Availability
但是当我从同一个 table 向 SELECT 语句添加另一个值时,我加入了 (Orion.Nodes),例如:
SELECT TOP 20 ROUND(AVG(t1.Availability), 2) as Average_Availability, t2.Caption as Node_Name,
t2.Status as CurrentStatus
FROM Orion.ResponseTime t1
LEFT JOIN Orion.Nodes t2 ON t1.NodeID=t2.NodeID
GROUP BY Node_Name ORDER BY Average_Availability
它完全停止工作。我觉得答案就在眼前,但我想不通。我想我需要另一个 JOIN 函数,但不确定如何将值与 t1.NodeID
匹配
此查询聚合行以计算 AVG()
,但您仅按其他字段之一 Node_Name
进行分组。您需要将 CurrentStatus
添加到 GROUP BY
列表
您缺少需要添加到分组依据的当前状态列,因为这是您的 select 语句的一部分。之后尝试 运行 它,错误应该会消失!
慢慢地疯狂想知道为什么我的 SQL 查询使用 2 个 SELECT 变量,而不是 3 个。这正在 Solarwinds 中使用。
SELECT TOP 20 ROUND(AVG(t1.Availability), 2) as Average_Availability, t2.Caption as Node_Name
FROM Orion.ResponseTime t1
LEFT JOIN Orion.Nodes t2 ON t1.NodeID=t2.NodeID
GROUP BY Node_Name ORDER BY Average_Availability
但是当我从同一个 table 向 SELECT 语句添加另一个值时,我加入了 (Orion.Nodes),例如:
SELECT TOP 20 ROUND(AVG(t1.Availability), 2) as Average_Availability, t2.Caption as Node_Name,
t2.Status as CurrentStatus
FROM Orion.ResponseTime t1
LEFT JOIN Orion.Nodes t2 ON t1.NodeID=t2.NodeID
GROUP BY Node_Name ORDER BY Average_Availability
它完全停止工作。我觉得答案就在眼前,但我想不通。我想我需要另一个 JOIN 函数,但不确定如何将值与 t1.NodeID
匹配此查询聚合行以计算 AVG()
,但您仅按其他字段之一 Node_Name
进行分组。您需要将 CurrentStatus
添加到 GROUP BY
列表
您缺少需要添加到分组依据的当前状态列,因为这是您的 select 语句的一部分。之后尝试 运行 它,错误应该会消失!