我有一個數據在一列中多次返回相同的值,我只想包括第一個值或者甚至是平均值,因爲它們都是相同的值。該組本身可能有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
你可能想是這樣的:
就在這個粘貼到一個空查詢窗口和exectue。適應你的需要......
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
但是 - 說實話 - 那是絕對沒有辦法的辦法應如何做?
謝謝我會試試這個 –
@DominickLaDuca,你試過這個嗎?它有用嗎?如果是,請投票並標記爲已接受,thx! – Shnugo
你嘗試過這麼遠嗎?請提供樣本日期和預期產出。 **請**在此處使用Stack Overflow的格式化可能性! – Shnugo
還有一點需要說明的是:如果我正確地理解了你,這對於你的應用程序而言是比數據庫更重要的工作......並且:請說明你的SQL Server版本...... – Shnugo
由於你添加了一個全新的列,你認爲第2,3和5行的價值是什麼? –