这是在Microsoft SQL Server 2008 R2中完成的。具有唯一值的SQL Server COUNT查询
我将用一个例子表开始了。
Organization | MoneyAmount | MoneyAmountAvg
ISD | 500 |
ISD | 500 |
ISD | 500 |
QWE | 250 |
ISD | 500 |
QWE | 250 |
OLP | 800 |
ISD | 500 |
我需要MoneyAmountAvg列有MoneyAmount/(# of times that organization shows up
所以例如价值,为ISD的MoneyAmountAvg列行将有的值。
QWE将有在MoneyAmountAvg柱和OLP每排将有一个值,因为它的存在只有一次。
这仅是一个示例表。实际的表格要大得多,并且有更多的组织,但它具有相同的标准。一些组织有多行,而其他组织只有一次。
我只需要它来计算多少次,当我使用的更新语句该组织的MoneyAmountAvg列各机构列出了一个办法。对每个组织进行硬编码绝对不是一种选择,因为它们可以在任何时候改变。
任何帮助表示赞赏。
但是,SELECT语句有效,我需要这个来使用UPDATE语句。我知道你必须使用CTE,但我遇到了一些麻烦。 – Mo2 2013-03-05 20:28:05
欣赏帮助。最后一个问题。我在那里有另一个名为LoadDt的列,它基本上反映了插入行的日期。我希望它只更新实际的表,其中:'LoadDt =(SELECT MAX(LoadDt)From [TableName])' 当我在FROM语句之后或SET语句之后添加where子句时,它会告诉我203行受到影响,但所有具有最新LoadDt的行仍不受影响。 – Mo2 2013-03-05 21:09:53
NVM,算出来。您忘记在您的UPDATE语句中的SELECT语句中选择MoneyAmountAvg列,并且意外更新了MoneyAmount列而不注意。 – Mo2 2013-03-05 21:18:09