Sql server 在其自己的行中平均数据

Sql server 在其自己的行中平均数据,sql-server,Sql Server,我的数据在一列中多次返回相同的值,我只想包含第一个值,甚至求组的平均值,因为它们都是相同的值。该组本身可能有3行付款,但付款是相同的。我只想显示三行,但在它自己的列中只显示一个付款 在下面的数据中,我想添加另一列,对Rich和Bob的值进行平均,并在顶行输入Rich和Bob的金额 样本数据: 1 Rich 300 2 Rich 300 3 Rich 300 4 Bob 250 5 Bob 250 你可能想要这样的东西: 只需将其粘贴到一个空的查询窗口并执行即可。适应你的

我的数据在一列中多次返回相同的值,我只想包含第一个值,甚至求组的平均值,因为它们都是相同的值。该组本身可能有3行付款,但付款是相同的。我只想显示三行,但在它自己的列中只显示一个付款

在下面的数据中,我想添加另一列,对Rich和Bob的值进行平均,并在顶行输入Rich和Bob的金额

样本数据:

1  Rich  300
2  Rich  300
3  Rich  300
4  Bob   250
5  Bob   250

你可能想要这样的东西:

只需将其粘贴到一个空的查询窗口并执行即可。适应你的需要

DECLARE @tbl TABLE(ID INT, PersonName VARCHAR(100),Amount DECIMAL(6,2))
INSERT INTO @tbl VALUES
 (1,'Rich',300)
,(2,'Rich',300)
,(3,'Rich',300)
,(4,'Bob',250)
,(5,'Bob',250);

WITH NumberedPerson AS
(
    SELECT tbl.*
          ,ROW_NUMBER() OVER(PARTITION BY PersonName ORDER BY ID) PersonID
          ,AVG(Amount) OVER(PARTITION BY PersonName) PersonAvg
    FROM @tbl AS tbl
)
SELECT *
     ,CASE WHEN PersonID=1 THEN PersonAvg ELSE NULL END AS AverageInFirstRow
FROM NumberedPerson
ORDER BY ID

但是-老实说-这绝对不是应该怎么做的…

到目前为止你都尝试了什么?请提供样本日期和预期输出。请利用堆栈溢出上的格式化可能性!还有一点需要说明的是:如果我理解正确,这是一项针对应用程序而不是数据库的工作。。。和:请说明SQL Server的版本…因为您要添加一个全新的列,您希望第2、3和5行的值是多少?我希望Rich的值是300,Bob的值是250。换句话说,我想平均Rich和Bob在他们自己的行中的值,并且仍然将他们所有数字的值保留在当前列中。我希望第1行中的值为300,@DominickLaDuca,你试过这个吗?它起作用了吗?如果是,请投赞成票并标记为接受,谢谢!