NET開發-在SQL Server中對數字類型的指定列值使用聚合函數求值

2020-12-27 一都編程
.NET開發-SQL Server資料庫

1.概述

在SQL Server中,微軟提供了多個聚合函數,使用這些聚合函數方便.NET開發者對數據進行統計和計算,無需自行編寫函數來實現這些功能,如:統計個數、求和、求平均值等。

這裡重點講解常用的SUM()、COUNT()、AVG()、MAX()和MIN()方法,通過在SQL語句中使用聚合函數來查詢表中的數據。

2.使用聚合函數查詢

2.1. SUM()函數

在SQL Server中,SUM()函數是求和函數,可以將所有行數據中指定列的數值相加,計算出總和。

例如:統計出BW_Student表中所有年齡等於21的年齡總和。編寫SQL語句如下:

SELECT SUM(Age) as 總年齡 FROM BW_Student where Age=21

運行一下此SQL語句:

求和函數

在圖1中,通過SUM()函數,我們求出了所有年齡為21的年齡總和是84。

在上圖中有兩個查詢可以一起運行,一個是查詢所有數據,一個是查詢出年齡總和。我們使用了SUM(Age)函數對Age列的值求和。

2.2. COUNT()函數

在SQL Server中,COUNT()函數是統計記錄個數函數,可以統計出滿足條件的所有行數據的總個數。

例如:統計出BW_Student表中有多少個年齡為21的學生。編寫SQL語句如下:

SELECT COUNT(Age) as 行數 FROM BW_Student where Age=21

運行一下結果:

統計個數函數

在圖2中,使用了COUNT(Age)函數對Age欄位統計記錄的個數,從結果上看,共有4個年齡滿足條件Age=21。

COUNT()函數隻統計記錄的個數,也就是行數。一行數據就是一條記錄。

在上面的SQL語句中,還使用了as關鍵字給COUNT(Age)函數起個別名為「行數」。

2.3. AVG()函數

在SQL Server中,AVG()函數是求平均值的函數。

例如:統計出BW_Student表中所有學生的平均年齡。編寫SQL語句如下:

SELECT AVG(Age) as 行數 FROM BW_Student

運行一下結果:

求平均值

在圖3中,使用了AVG(Age)函數對年齡求平均值,結果為23。

2.4. MAX()函數

在SQL Server中,MAX()函數是求最大值函數。可在指定的列值中快速找出最大值。

例如:求出BW_Student表中最大的年齡值。

SELECT MAX(Age) as 最大值 FROM BW_Student

運行一下結果:

求最大值

在圖4中找出的最大年齡值是56。使用MAX()函數的好處是該函數的功能已封裝好,我們只需要使用它來得到最大值即可,無需我們自行開發封裝。

2.5. MIN()函數

在SQL Server中,MIN()函數是求最小值函數。如下SQL語句:

SELECT MIN(Age) as 最小值 FROM BW_Student

運行一下結果:

求最小值

在圖5的結果中,得出的最小值是12,Min(Age)表示對Age欄位中的所有值中求出最小值。

對於SQL Server中的聚合函數,其圓括號()中是操作的欄位名,或稱為列名,注意,針對聚合函數,都是數字類型的。如果是字符串值,則是無法求最大值、最小值、平均值和求和的。

其實在C#中,也有聚合函數,且與SQL Server中的聚合函數的含義是一樣的,甚至函數名稱都一樣。

至於是在C#中使用聚合函數,還是在SQL Server中使用聚合函數,這要看總體的應用程式是如何設計了。

相關焦點

  • SQL 窗口函數是什麼?漲見識了!
    窗口函數(Window Function) 是 SQL2003 標準中定義的一項新特性,並在 SQL2011、SQL2016 中又加以完善,添加了若干處拓展。窗口函數不同於我們熟悉的普通函數和聚合函數,它為每行數據進行一次計算:輸入多行(一個窗口)、返回一個值。
  • 續 | 《SQL基礎教程》學習筆記
    在sql中有兩層意思:一是數據類型的轉換,簡稱類型轉換,在英語中稱為cast;另一層的意思是值的轉換;cast(轉換前的值 as 想要轉換的數據類型)select cast("ooo1" as interger)謂詞是需要滿足特定條件的函數,該條件就是返回值是真值。
  • SQL Server常用函數整理
    學習SQL,有很多時候需要使用到系統函數,比如一些統計函數(聚合函數),日期函數,字符串函數等。今天給大家整理了一份SQL Server的常用函數,希望對你有所幫助。CHARINDEX(),PATINDEX()     --函數返回字符串中某個指定的子串出現的開始位置SOUNDEX() --函數返回一個四位字符碼     --SOUNDEX函數可用來查找聲音相似的字符串但SOUNDEX函數對數字和漢字均只返回
  • 5分鐘學會SQL SERVER行轉列、列轉行,PIVOT操作
    PIVOT語法PIVOT示例UNPIVOT語法UNPIVOT示例PIVOT和UNPIVOTPIVOT 通過將表達式中的一個列的唯一值轉換為輸出中的多列(即行轉列),來輪替表值表達式。PIVOT 在需要對最終輸出所需的所有剩餘列值執行聚合時運行聚合。與 PIVOT 執行的操作相反,UNPIVOT 將表值表達式的列輪換為行(即列轉行)。但是需要注意的是,UNPIVOT 並不完全是 PIVOT 的逆操作。PIVOT 執行聚合,並將多個可能的行合併為輸出中的一行。
  • SQL SERVER 行轉列 PIVOT 用法及解釋
    在資料庫操作過程中,偶爾會使用到《行轉列》查詢;下面介紹Sql server 中常用的行轉列操作;1.語法
  • 不一樣的 SQL Server 日期格式化
    CONVERT 來轉換的,SQL Server 從 2012 開始增加了 FORMAT 方法,可以使用 FORMAT 來格式化日期,更標準化,更具可定製性,而且和 C# 裡的日期格式化差不多,可以直接把 C# 裡日期的格式直接拿過來用FORMAT 介紹FORMAT 適用於數字和日期類型數據的格式化,其他數據類型不支持,其他類型數據轉換請使用 CONVERT 和 CAST 去轉換。
  • SQL Server 中 JSON_MODIFY 的使用
    JSON_MODIFY 的使用IntroSQL Server 從 2016 開始支持了一些 JSON操作,最近的項目裡也是好多地方直接用欄位直接存成了 JSON,需要了解一下怎麼在SQL Server 中操作 JSON.
  • 「SQL」重點整理
    和 case6.內嵌函數:說明變量的命令7.其他命令:嵌於命令中使用的標準函數44、SQL中的常量:數字常量、字符串常量、日期和時間常量、符號常量45、數字常量:整數常量、小數常量以及浮點常量(在數字常量的各個位之間不可以加逗號,例如,123
  • 第三章 SQL聚合函數 COUNT(一)
    第三章 SQL聚合函數 COUNT(一)返回表或指定列中的行數的聚合函數。
  • 如何使用 SQL Server FILESTREAM 存儲非結構化數據?
    使用VARBINARY (MAX) FILESTREAM 列創建表仍然需要將記錄插入到新創建的表中(腳本4)。具有VARBINARY (MAX) FILESTREAM列的表中的紀錄FILESTREAM列中的每個單元格都是一個與其關聯的文件系統上的文件路徑。要想讀取路徑的話,需要在T-SQL語句中使用varbinary (max)列的PathName屬性。腳本6提供了如何讀取varbinary (max)列文件路徑的示例。
  • 《SQL基礎教程》學習筆記
    ,字符串和日期需要用單引號括起來,數字常數不用1.1 表的創建數據類型表示數據的種類,每一列不能存儲與該列數據類型不符的數據(INTERGER:數字型,CHAR:定長字符型(未達到最大長度時空格補足),VARCHAR:可變長字符串,DATE:日期型)約束設置:約束是除了數據類型之外,對列中存儲的數據進行限制或者追加條件的功能 NOT NULL(非空),PRIMARY KEY(主鍵)1.2表的刪除和更新
  • NET開發-SQL語句在SQL Server中查詢全部列、指定列和前n條數據
    對於.NET開發的應用系統,只要存在數據,就可以查詢出來,根據存儲在SQL Server中的表數據,按照一定的條件組合SQL語句,然後再通過C#+ADO.NET技術在資料庫中篩選出有用的數據。另外,對於業務系統,在使用C#代碼處理數據時,也會使用一些查詢功能篩選出一些數據參與邏輯處理,最後得到最有用的數據呈現給用戶。
  • mysql常用sql語句總結
    FROM 子句中的表或視圖可通過內聯接或完整外部聯接按任意順序指定;但是,用左或右向外聯接指定表或視圖時,表或視圖的順序很重要。有關使用左或右向外聯接排列表的更多信息,請參見使用外聯接。聯合查詢union查詢語法:sql1 union all sql2;UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。
  • 了解資料庫類型及MySQL資料庫常用命令行
    2、資料庫的分類(1) 關係型資料庫(sql資料庫):中型:mysql(埠號3306)、sql server大型:Oracle(埠號1521)(2) 非關係型資料庫(no-sql資料庫)可變長度:varchar(長度)姓名 char(10) varchar(10)張三 10 2張三丰 10 3愛新覺羅張三 10 64、日期:datetime注意:不是數字類型的必須使用單引號
  • NET開發-使用C#+ADO.NET在SQL Server表中添加、更新和刪除數據
    .NET開發-ADO.NET1.概述在ADO.NET中,使用SqlCommandSqlCommand對象有3個重要的方法,如下說明:ExecuteNonQuery()方法:返回受影響的行數(insert,update,delete執行結果),返回值是int類型。例如:如果在資料庫中插入了3條數據,則ExecuteNonQuery()方法就會返回3。
  • 鞏固SQL - 窗口函數&變量&數據透視圖
    2、窗口函數基本語法分析函數 over(partition by 列名 order by 列名 )2.1、分析函數分類聚合類avg(列名)、sum(列名)、count(列名)、max(列名)、min(列名)排名類row_number() 按照值排序時產生一個自增編號,不會重複rank() 按照值排序時產生一個自增編號
  • SQL常用語句總結
    創建新表CREATE TABLE <表名> (    <列名1> <列類型1>,    <列名2> <列類型2>,    <列名3> <列類型3>,    PRIMARY KEY (<列名1>),
  • HiveSql基礎函數使用(三)
    前面兩篇文章介紹了一些常見且非常有用的函數,基本夠實現開發中的需求。本文主要介紹幾個select查詢函數的區別。從執行順序來說,兩者主要存在以下幾點區別 ① distinct只是將重複的行從結果中剔除出去;group by是按指定的列分組,一般這時在select中會用到聚合函數。 ②distinct是把不同的記錄顯示出來;group by是在查詢時先把紀錄按照類別分出來再查詢。
  • SQL 基礎知識- 聚合和排序
    目錄對表進行聚合查詢對表進行分組為聚合結果指定條件對查詢結果進行排序一、對表進行聚合查詢  1.聚合函數    (1)5 個常用函數:      ①COUNT:計算表中的記錄(行)數。      ②SUM:計算表中數值列的數據合計值。
  • NET開發-在SQL Server資料庫中,使用like結合通配符實現模糊查詢
    %通配符使用的最多,表示任意的0個或多個字符,邊界值限制比較少,因此,廣受.NET開發者喜歡。2.2. _通配符的使用在SQL Server中,_在SQL語句中表示任意的1個字符。[]通配符的使用在SQL Server中,對於[]有兩種使用方法:1) []表示指定範圍內。2) [^]表示不在指定的範圍內。[]只匹配一個字符,並且這個字符必須是[]範圍內的。