Stack Overflow 的下午好人。
我正在尝试做一些我不确定如何用我的 SQL 知识实现的事情,但我很清楚我想要什么,所以希望这对人们有意义。
我有一些看起来像这样的 perfmon 磁盘结果:
DatabaseName ObjectName CounterName InstanceName Server Average
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server1 13.616
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server2 17.508
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server3 12.775
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server4 13.148
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server5 10.091
这些是基于此查询的示例行:
SELECT
e14_db.DatabaseName AS [DatabaseName],
d.ObjectName,
d.CounterName,
d.InstanceName,
d.Server,
AVG(Value) * 1000 AS [Average]
FROM E14_Perfmon_MBX AS d
INNER JOIN E14_Databases AS e14_db
ON e14_db.LogFolderPath = d.InstanceName
WHERE d.ObjectName = 'logicaldisk'
AND d.CounterName = 'avg. disk sec/read'
AND d.DateTime > (DATEADD(hh, -4, GETDATE()))
AND d.Value < 1
GROUP BY d.ObjectName, d.CounterName, d.InstanceName, d.Server, e14_db.DatabaseName
ORDER BY e14_db.DatabaseName, d.Server
我想要的是这样的:
DatabaseName ObjectName CounterName InstanceName Server1 Server2 Server3 Server4 Server5
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 13.616 17.508 12.775 13.148 10.091
有谁知道我怎么能做到这一点?基本上将行应用到自己身上?
如果需要任何澄清,请随时询问。
谢谢!