TSQL - 对 sp_MSforeachdb 的结果取平均值
TSQL - Averaging a result from sp_MSforeachdb
我在同一个 SQL 服务器上有数百个数据库 (SQL2012),它们都具有相同的基本结构,我正在尝试获取 'Contacts' 我们的数据库。
我可以 运行 一个 sp_MSforeachdb 查询,该查询显示联系人 table 中有多少联系人的列表,但我需要对结果进行平均。有关执行此操作的任何指导。
这是我目前得到的查询:
exec sp_MSforeachdb
'use ?
IF DB_NAME() NOT IN ( "model","tempdb","master","msdb")
select count (CONTACTID) as TotalContacts from contact_tbl '
我很欣赏这可能是相当基本的东西,但我是新来的,我用谷歌搜索了其中的废话,并从这里和其他地方尝试了很多不同的建议,但没有成功。
如有任何帮助,我们将不胜感激。
你需要一个临时工 table。将 Sp_msforeachdb
程序结果插入一个温度 table 并找到平均值
IF Object_id('tempdb..#avg') IS NOT NULL
DROP TABLE #avg
CREATE TABLE #avg(cnt INT)
INSERT INTO #avg(cnt)
EXEC Sp_msforeachdb
'use ?
IF DB_NAME() NOT IN ( "model","tempdb","master","msdb")
select count (CONTACTID) as TotalContacts from contact_tbl '
SELECT Avg(cnt)
FROM #test
我在同一个 SQL 服务器上有数百个数据库 (SQL2012),它们都具有相同的基本结构,我正在尝试获取 'Contacts' 我们的数据库。
我可以 运行 一个 sp_MSforeachdb 查询,该查询显示联系人 table 中有多少联系人的列表,但我需要对结果进行平均。有关执行此操作的任何指导。
这是我目前得到的查询:
exec sp_MSforeachdb
'use ?
IF DB_NAME() NOT IN ( "model","tempdb","master","msdb")
select count (CONTACTID) as TotalContacts from contact_tbl '
我很欣赏这可能是相当基本的东西,但我是新来的,我用谷歌搜索了其中的废话,并从这里和其他地方尝试了很多不同的建议,但没有成功。
如有任何帮助,我们将不胜感激。
你需要一个临时工 table。将 Sp_msforeachdb
程序结果插入一个温度 table 并找到平均值
IF Object_id('tempdb..#avg') IS NOT NULL
DROP TABLE #avg
CREATE TABLE #avg(cnt INT)
INSERT INTO #avg(cnt)
EXEC Sp_msforeachdb
'use ?
IF DB_NAME() NOT IN ( "model","tempdb","master","msdb")
select count (CONTACTID) as TotalContacts from contact_tbl '
SELECT Avg(cnt)
FROM #test