簡體   English   中英

sql:如何獲取總和

[英]sql : how to get the sum of sums

下面我可以得到sub_shares的結果,但是我不知道如何通過將sub_shares的結果用於以下代碼來獲取結果sum(sub_shares):

怎么做 ?

 SELECT * , Client.client_chi_name, Client.client_eng_name, SUM( shares_no ) AS sub_shares FROM Shareholder LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id WHERE Shareholder.com_no = 2040628 GROUP BY Shareholder.client_id ORDER BY SUM( shares_no ) DESC, Shareholder.date_of_register DESC 

表股東

  • com_no
  • 注冊日期
  • share_type
  • class_shares
  • client_id
  • share_no
  • transferee_id
  • 貨幣
  • 股份數量

非常感謝您的幫助和支持。

SELECT * , 
  Client.client_chi_name, 
  Client.client_eng_name, 
  SUM( shares_no ) AS sub_shares,
  (select sum(shares_no) FROM Shareholder
      LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id
      WHERE Shareholder.com_no = 2040628) as sum_of_sum
FROM Shareholder
LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id
WHERE Shareholder.com_no = 2040628
GROUP BY Shareholder.client_id
ORDER BY SUM( shares_no ) DESC,
Shareholder.date_of_register DESC

您可以使用subselect僅添加一列

您可以根據需要使用以下代碼,

要么

GROUP BY Shareholder.client_id WITH ROLLUP

要么

GROUP BY Shareholder.client_id WITH CUBE

有關詳細信息,請參考technet

您可以使用CTE(公用表表達式)來完成相同的任務

with cte as
(
SELECT * , 
Client.client_chi_name, 
Client.client_eng_name, 
SUM( shares_no ) AS sub_shares
FROM Shareholder
LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id
WHERE Shareholder.com_no = 2040628
GROUP BY Shareholder.client_id
ORDER BY shares_no  DESC,
Shareholder.date_of_register DESC
)

select cte.client_chi_name,cte.client_eng_name,SUM(cte.sub_shares) sub_shares from cte   --you can access more column which is present in * 
GROUP BY client_chi_name,client_eng_name --place extra column yor are accessing

您可以刪除GROUP BY並執行以下操作:

SUM( shares_no ) OVER (PARTITION BY Client.client_id) AS sub_shares
SUM( shares_no ) AS total_shares,

您還需要從SELECT DISTINCT開始,否則您將獲得重復項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM