我在表中包含諸如pagecount,convertedpages和changedpages之類的列以及許多其他列。如何在沒有組的情況下對sql中的兩列進行求和
pagecount是轉換頁數和改變頁數的總和。
我需要選擇所有行以及pagecount,我不能將它們分組。我想知道是否有辦法做到這一點?
此選擇是視圖的一部分。所以我可以使用另一個SQL語句來帶來總和,然後以某種方式使其成爲主要的SQL查詢的一部分?
謝謝。
我在表中包含諸如pagecount,convertedpages和changedpages之類的列以及許多其他列。如何在沒有組的情況下對sql中的兩列進行求和
pagecount是轉換頁數和改變頁數的總和。
我需要選擇所有行以及pagecount,我不能將它們分組。我想知道是否有辦法做到這一點?
此選擇是視圖的一部分。所以我可以使用另一個SQL語句來帶來總和,然後以某種方式使其成爲主要的SQL查詢的一部分?
謝謝。
如果我正確理解你的問題,而我不知道爲什麼你不能使用group by
,另一種選擇是使用一個correlated subquery
:
select distinct id,
(select sum(field) from yourtable y2 where y.id = y2.id) summedresult
from yourtable y
這假設你有這樣的數據:
id | field
1 | 10
1 | 15
2 | 10
而且將相當於:
select id, sum(field)
from yourtable
group by id
不是100%對你以後在這裏,但如果你想跨行總不進行分組,您可以在SQL Server中使用OVER()
與集料:
SELECT *, SUM(convertedpages) OVER() AS convertedpages
, SUM(changedpages) OVER() AS changedpages
, SUM(changedpages + convertedpages) OVER() as PageCount
FROM Table
這重複的總對於每一行,如果您希望將聚合按照某些字段進行分組,同時仍顯示所有行的完整詳情,則可以在OVER()
內使用PARTITION BY
。
你能分享一些樣本數據和期望的結果嗎?我不確定我是否理解您的意思,因爲當您之前說過pagecount已經是表格的一部分時,需要選擇所有行以及pagecount。 –
隨着用戶需求的變化,該列不再用於前端。他們只輸入轉換頁面和更改頁面。但他們希望在他們的報告中看到合併頁數。所以我決定使用該列將數據發送到報告。 (大多不是最聰明的設計),但它現在正在工作。感謝您嘗試幫助。 – lama