【问题标题】:TSQL - Averaging a result from sp_MSforeachdbTSQL - 平均 sp_MSforeachdb 的结果
【发布时间】:2017-04-06 06:47:05
【问题描述】:

我在同一个 SQL 服务器 (SQL2012) 上有数百个数据库,它们都具有相同的基本结构,我正在尝试获取我们数据库的平均“联系人”数量。

我可以运行 sp_MSforeachdb 查询,该查询显示联系人表中有多少联系人的列表,但我需要对结果进行平均。有关执行此操作的任何指导。

这是我目前得到的查询:

exec sp_MSforeachdb
'use ?
IF DB_NAME() NOT IN ( "model","tempdb","master","msdb")
select count (CONTACTID) as TotalContacts from contact_tbl '

我很欣赏这可能是相当基本的东西,但我是新来的,我已经用谷歌搜索了其中的废话,并尝试了很多来自这里和其他地方的不同建议,但没有任何乐趣。

任何帮助将不胜感激。

【问题讨论】:

  • 将计数插入表中,然后您就可以随心所欲了吗?
  • 非常感谢,谢谢-
  • 你可以使用临时表

标签: sql sql-server tsql sp-msforeachdb


【解决方案1】:

您需要一个临时表。将Sp_msforeachdb过程结果插入一张临时表,求平均值

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 

【讨论】:

  • 谢谢你 Prdp - TSQL 仍然是新领域,但这似乎很基本(如怀疑) - 婴儿步骤。
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-18
  • 2015-02-02
相关资源
最近更新 更多