最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL sum后再計算percentage的多種解決辦法

 更新時間:2024年06月03日 08:20:41   作者:MyFreeIT  
這篇文章主要介紹了MySQL sum后再計算percentage的多種解決辦法,over() 函數(shù),Cross Join,Select 嵌套查詢以及 with 函數(shù)處理,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下

over() 函數(shù),最簡單的一種

以下是SQL片段,在外面嵌套一個Select是因為over 不會SQL語句所有的data sum,而不是 limit 之后的數(shù)據(jù),所以需要先limit 在over()

		SELECT 
		b.*,
		ROUND(b.amount*100 / SUM(b.amount) OVER(),2) AS inv_salesShare
		FROM (	
				SELECT
					cm_cust_no,
					cm_co_name,
					SUM ( amount ) AS amount 
				FROM

Cross Join

通過cross join 把total 作為一個結果集并到sum的sql,然后通過除法計算Percentage。

 SELECT 
     P.PersonID, SUM(PA.Total)
     SUM(PA.Total) * 100 / [p] AS 'Percentage'
 FROM 
     Person P
 JOIN 
     Package PA ON P.PersonID = PA.PackageFK
 CROSS JOIN 
     (SELECT SUM(PA.[Total]) AS [p] 
      FROM Package PA) t
 GROUP BY 
     P.PersonID

通過兩個Select 嵌套查詢

這種方法適合簡單Case,如果條件復雜時,第二個Select就會臃腫,比如 增加 時間條件、Group,Limit等。

SELECT PA.PersonID, SUM(PA.Total),
       SUM(PA.Total) * 100.0 / (SELECT SUM(PA.Total) FROM PA)
FROM Package PA
GROUP BY PA.PersonID;

通過with 函數(shù)處理

此方法簡單,分塊處理,一些復雜的SQL可以考慮使用with方法處理。

有時間驗證下

;WITH PersonTotals AS
(
  SELECT P.PersonID, SUM(CAST(PA.Total AS MONEY)) Total
  FROM Person P
  JOIN Package PA ON P.PersonID = PA.PackageFK
  GROUP BY P.PersonID
),
GrandTotal AS
(
  SELECT SUM(PT.Total) Total
  FROM PersonTotals PT
)
SELECT PT.*, (PT.Total / NULLIF((SELECT Total From GrandTotal),0)) * 100 Percentage
FROM PersonTotals PT

到此這篇關于MySQL sum后再計算percentage的多種解決辦法的文章就介紹到這了,更多相關MySQL計算percentage內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺析MySQL如何實現(xiàn)事務隔離

    淺析MySQL如何實現(xiàn)事務隔離

    使用過關系型數(shù)據(jù)庫的,應該都事務的概念有所了解,知道事務有 ACID 四個基本屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability),今天我們主要來理解一下事務的隔離性
    2021-06-06
  • MySQL行鎖、間隙鎖和臨鍵鎖示例詳解

    MySQL行鎖、間隙鎖和臨鍵鎖示例詳解

    InnoDB存儲引擎通過行鎖、間隙鎖和臨鍵鎖實現(xiàn)MVCC和基于鎖的并發(fā)控制,確保事務隔離級別和避免死鎖,本文給大家介紹MySQL行鎖、間隙鎖和臨鍵鎖,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Mysql8創(chuàng)建用戶及賦權操作實戰(zhàn)記錄

    Mysql8創(chuàng)建用戶及賦權操作實戰(zhàn)記錄

    一般在開發(fā)中,我們需要新建一個賬戶,并賦予某個數(shù)據(jù)庫的訪問權限,下面這篇文章主要給大家介紹了關于Mysql8創(chuàng)建用戶及賦權操作的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • MySQL中的常用函數(shù)及用法總結

    MySQL中的常用函數(shù)及用法總結

    MySQL是一種常用的關系型數(shù)據(jù)庫管理系統(tǒng),它提供了許多內(nèi)置函數(shù)來處理數(shù)據(jù),本文將介紹MySQL中的各種常用函數(shù),包括字符串函數(shù)、日期函數(shù)、數(shù)學函數(shù)、聚合函數(shù)等,需要的朋友可以參考下
    2023-06-06
  • MySQL?數(shù)據(jù)庫中數(shù)據(jù)表超詳細的基本操作

    MySQL?數(shù)據(jù)庫中數(shù)據(jù)表超詳細的基本操作

    這篇文章主要介紹了MySQL?數(shù)據(jù)庫中數(shù)據(jù)表的基本操作,下面文章會從創(chuàng)建表的基本語法伊利舉例說明概括全篇數(shù)據(jù)表的基本操作詳情,需要的小伙伴可以參考一下文章的具體內(nèi)容,希望對你有所幫助
    2021-12-12
  • MySQL索引與視圖詳解

    MySQL索引與視圖詳解

    MySQL中的索引類似于書籍的目錄,用于提高數(shù)據(jù)查詢效率,視圖是一種虛擬表,可以提高數(shù)據(jù)的安全性,并簡化查詢語句,索引可以提高查詢效率,但會占用磁盤空間,視圖可以保障數(shù)據(jù)的安全性,隱藏底層列名,并提供邏輯數(shù)據(jù)獨立性,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • RedHat8安裝mysql9.1的詳細過程

    RedHat8安裝mysql9.1的詳細過程

    文章主要介紹了如何下載和安裝MySQL?Enterprise?Edition,包括下載地址、安裝順序、啟動服務、修改密碼等步驟,同時,還提到了JDBC的下載地址以及解決Red?Hat?8源問題的方法,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Mysql子查詢IN中使用LIMIT應用示例

    Mysql子查詢IN中使用LIMIT應用示例

    有3張表,infor信息表,mconfig物料配置表,maaply物料申請表,要求是讀出申請表中哪些人申請哪些物料,接下來為大家介紹下Mysql子查詢IN中使用LIMIT
    2014-01-01
  • MySql如何使用not in實現(xiàn)優(yōu)化

    MySql如何使用not in實現(xiàn)優(yōu)化

    這篇文章主要介紹了MySql如何使用not in實現(xiàn)優(yōu)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SQL-?join多表關聯(lián)問題

    SQL-?join多表關聯(lián)問題

    這篇文章主要介紹了SQL-?join多表關聯(lián)問題,具有很好的參考價值,希望對大家有所幫助。
    2022-12-12

最新評論

锡林浩特市| 宜章县| 卢湾区| 左权县| 增城市| 顺平县| 望江县| 肇庆市| 子长县| 留坝县| 绥德县| 米易县| 许昌市| 涟水县| 海宁市| 容城县| 敦煌市| 军事| 九龙城区| 晋州市| 绵竹市| 平和县| 灵璧县| 太谷县| 丹寨县| 巴彦县| 嵩明县| 诏安县| 望都县| 舞阳县| 迁西县| 孝感市| 阜康市| 沾益县| 丽水市| 海城市| 忻城县| 汽车| 宿松县| 华宁县| 二连浩特市|