當前位置:首頁 » 編程語言 » sql聚集函數

sql聚集函數

發布時間: 2022-10-03 04:28:23

sql聚合函數

Max 返回表達式中的最大值項
Min 返回表達式中的最小值項
Sum 計算並返回表達式中各項的和
Avg 計算並返回表達式中各項的平均值
Count 返回一個集合中的項數,返回值為整型
Sum() 對數值型列或計算列求總和
Avg() 對數值型列或計算列求平均值
Min() 返回一個數值列或數值表達式的最小值
Max() 返回一個數值列或數值表達式的最大值
Count() 返回滿足select語句中指定的條件的記錄的個數
Count(*) 返回找到的行數

❷ sql聚合函數有哪些

聚集函數
和大多數其它關系資料庫產品一樣,PostgreSQL 支持聚集函數。一個聚集函數從多個輸入行中計算出一個結果。比如,我們有在一個行集合上計算 count(數目), sum(總和), avg(均值), max(最大值), min(最小值)的函數。

比如,我們可以用下面的語句找出所有低溫中的最高溫度:

SELECT max(temp_lo) FROM weather; max
-----
46
(1 row)如果我們想知道該讀數發生在哪個城市,可能會用:

SELECT city FROM weather WHERE temp_lo = max(temp_lo); -- 錯!不過這個方法不能運轉,因為聚集函數 max 不能用於 WHERE 子句中。存在這個限制是因為 WHERE 子句決定哪些行可以進入聚集階段;因此它必需在聚集函數之前計算。不過,我們可以用其它方法實現這個目的;這里我們使用子查詢:

SELECT city FROM weather
WHERE temp_lo = (SELECT max(temp_lo) FROM weather); city
---------------
San Francisco
(1 row)這樣做是可以的,因為子查詢是一次獨立的計算,它獨立於外層查詢計算自己的聚集。

聚集同樣也常用於 GROUP BY 子句。比如,我們可以獲取每個城市低溫的最高值:

SELECT city, max(temp_lo)
FROM weather
GROUP BY city; city | max
---------------+-----
Hayward | 37
San Francisco | 46
(2 rows)這樣每個城市一個輸出。每個聚集結果都是在匹配該城市的行上面計算的。我們可以用 HAVING 過濾這些分組:

SELECT city, max(temp_lo)
FROM weather
GROUP BY city
HAVING max(temp_lo) < 40; city | max
---------+-----
Hayward | 37
(1 row)這樣就只給出那些 temp_lo 值曾經有低於 40 度的城市。最後,如果我們只關心那些名字以"S"開頭的城市,我們可以用:

SELECT city, max(temp_lo)
FROM weather
WHERE city LIKE 'S%'
GROUP BY city
HAVING max(temp_lo) < 40;語句中的 LIKE 執行模式匹配,在節9.7里有解釋。

理解聚集和 SQL 的 WHERE 和 HAVING 子句之間的關系非常重要。WHERE 和 HAVING 的基本區別如下:WHERE 在分組和聚集計算之前選取輸入行(它控制哪些行進入聚集計算),而 HAVING 在分組和聚集之後選取輸出行。因此,WHERE 子句不能包含聚集函數;因為試圖用聚集函數判斷那些行將要輸入給聚集運算是沒有意義的。相反,HAVING 子句總是包含聚集函數。當然,你可以寫不使用聚集的 HAVING 子句,但這樣做沒什麼好處,因為同樣的條件可以更有效地用於 WHERE 階段。

在前面的例子里,我們可以在 WHERE 里應用城市名稱限制,因為它不需要聚集。這樣比在 HAVING 里增加限制更加高效,因為我們避免了為那些未通過 WHERE 檢查的行進行分組和聚集計算。

❸ sql聚合函數有哪些

聚集函數
和大多數其它關系資料庫產品一樣,PostgreSQL
支持聚集函數。一個聚集函數從多個輸入行中計算出一個結果。比如,我們有在一個行集合上計算
count(數目),
sum(總和),
avg(均值),
max(最大值),
min(最小值)的函數。
比如,我們可以用下面的語句找出所有低溫中的最高溫度:
SELECT
max(temp_lo)
FROM
weather;
max
-----
46
(1
row)如果我們想知道該讀數發生在哪個城市,可能會用:
SELECT
city
FROM
weather
WHERE
temp_lo
=
max(temp_lo);
--
錯!不過這個方法不能運轉,因為聚集函數
max
不能用於
WHERE
子句中。存在這個限制是因為
WHERE
子句決定哪些行可以進入聚集階段;因此它必需在聚集函數之前計算。不過,我們可以用其它方法實現這個目的;這里我們使用子查詢:
SELECT
city
FROM
weather
WHERE
temp_lo
=
(SELECT
max(temp_lo)
FROM
weather);
city
---------------
San
Francisco
(1
row)這樣做是可以的,因為子查詢是一次獨立的計算,它獨立於外層查詢計算自己的聚集。
聚集同樣也常用於
GROUP
BY
子句。比如,我們可以獲取每個城市低溫的最高值:
SELECT
city,
max(temp_lo)
FROM
weather
GROUP
BY
city;
city
|
max
---------------+-----
Hayward
|
37
San
Francisco
|
46
(2
rows)這樣每個城市一個輸出。每個聚集結果都是在匹配該城市的行上面計算的。我們可以用
HAVING
過濾這些分組:
SELECT
city,
max(temp_lo)
FROM
weather
GROUP
BY
city
HAVING
max(temp_lo)
<
40;
city
|
max
---------+-----
Hayward
|
37
(1
row)這樣就只給出那些
temp_lo
值曾經有低於
40
度的城市。最後,如果我們只關心那些名字以"S"開頭的城市,我們可以用:
SELECT
city,
max(temp_lo)
FROM
weather
WHERE
city
LIKE
'S%'
GROUP
BY
city
HAVING
max(temp_lo)
<
40;語句中的
LIKE
執行模式匹配,在節9.7里有解釋。
理解聚集和
SQL

WHERE

HAVING
子句之間的關系非常重要。WHERE

HAVING
的基本區別如下:WHERE
在分組和聚集計算之前選取輸入行(它控制哪些行進入聚集計算),而
HAVING
在分組和聚集之後選取輸出行。因此,WHERE
子句不能包含聚集函數;因為試圖用聚集函數判斷那些行將要輸入給聚集運算是沒有意義的。相反,HAVING
子句總是包含聚集函數。當然,你可以寫不使用聚集的
HAVING
子句,但這樣做沒什麼好處,因為同樣的條件可以更有效地用於
WHERE
階段。
在前面的例子里,我們可以在
WHERE
里應用城市名稱限制,因為它不需要聚集。這樣比在
HAVING
里增加限制更加高效,因為我們避免了為那些未通過
WHERE
檢查的行進行分組和聚集計算。

❹ 第六章 SQL聚合函數 JSON_ARRAYAGG

創建 JSON 格式值數組的聚合函數。

註:IRIS可用,IRIS之前版本不可用。

JSON_ARRAYAGG 聚合函數返回指定列中值的JSON格式數組。

一個簡單的 JSON_ARRAYAGG (或 JSON_ARRAYAGG ALL )返回一個 JSON 數組,其中包含所選行中 string-expr 的所有值。
字元串 -expr 為空字元串 (") 的行由數組中的( " u0000" )表示。
字元串 -expr 為NULL的行不包含在數組中。
如果只有一個字元串 -expr 值,並且是空字元串( " ), JSON_ARRAYAGG 將返回 JSON 數組 ["u0000"] 。
如果所有的 string-expr 值為 NULL , JSON_ARRAYAGG 返回一個空的 JSON 數組 [] 。

JSON_ARRAYAGG DISTINCT 返回一個 JSON 數組,由所選行中 string-expr 的所有不同(唯一)值組成: JSON_ARRAYAGG(DISTINCT col1) 。
NULL 字元串 -expr 不包含在 JSON 數組中。
JSON_ARRAYAGG(DISTINCT BY(col2) col1) 返回一個 JSON 數組,該數組只包含記錄中 col2 值是不同的(唯一的)的那些 col1 欄位值。
但是請注意,不同的 col2 值可能包含一個單獨的 NULL 值。

JSON_ARRAYAGG string-expr 不能是流欄位。
指定流欄位的結果是 SQLCODE -37 。

默認的 JSON_ARRAYAGG 返回類型是 VARCHAR(8192) 。
這個長度包括 JSON 數組格式化字元以及欄位數據字元。
如果預期返回的值將需要大於 8192 ,可以使用 CAST 函數指定一個更大的返回值。
例如 CAST(JSON_ARRAYAGG(value)) AS VARCHAR(12000)) 。
如果實際返回的JSON數組長於 JSON_ARRAYAGG 返回類型長度,IRIS將在返回類型長度處截斷JSON數組,而不會發出錯誤。
因為截斷JSON數組會刪除其關閉的 ] 字元,這使得返回值無效。

可以使用 %SelectMode 屬性為 JSON 數組中的元素指定數據顯示值: 0=Logical (默認值), 1=ODBC , 2= display 。
如果 string-expr 包含一個 %List 結構,則元素以ODBC模式表示,用逗號分隔,在邏輯和顯示模式中以 %List 格式字元表示,用 轉義序列表示。

JSON_ARRAYAGG 函數將表中多行列的值組合成一個包含元素值的 JSON 數組。
因為在計算所有聚合欄位之後,查詢結果集中應用了一個 ORDER BY 子句,所以 ORDER BY 不能直接影響這個列表中的值序列。
在某些情況下, JSON_ARRAYAGG 結果可能是按順序出現的,但是不應該依賴於這種順序。
在給定聚合結果值中列出的值不能顯式排序。

下面的嵌入式SQL示例返回一個主機變數,該變數包含示例的 Home_State 列中所有值的 JSON 數組。
以字母 A 開頭的人名表:

注意,這個 JSON 數組包含重復的值。

下面的動態SQL示例返回一個主機變數,該變數包含樣本的 Home_State 列中所有不同(唯一)值的JSON數組。
以字母 A 開頭的人名表:

下面的SQL示例為每個州創建了一個 JSON 數組,其中包含在 Home_City 列中找到的所有值,以及按州列出的這些城市值的計數。
每個 Home_State 行包含該狀態的所有 Home_City 值的 JSON 數組。
這些JSON數組可能包含重復的城市名稱:

更有用的是一個 JSON 數組的所有不同的值,發現在 Home_City 列為每個州,如下所示的動態SQL示例:

注意,這個示例返回每個州的不同城市名稱和總城市名稱的整數計數。

下面的動態SQL示例使用 %SelectMode 屬性為 DOB 日期欄位返回的JSON值數組指定 ODBC 顯示模式:

下面的動態SQL示例使用 %FOREACH 關鍵字。
它為每個不同的 Home_State 返回一行,其中包含該 Home_State 的年齡值的JSON數組。

下面的動態SQL示例使用 %AFTERHAVING 關鍵字。
它為每個 Home_State 返回一行,其中至少包含一個滿足 HAVING 子句條件的 Name 值(以 「M」 開頭的名稱)。
第一個 JSON_ARRAYAGG 函數返回一個包含該狀態所有名稱的 JSON 數組。
第二個 JSON_ARRAYAGG 函數返回的 JSON 數組只包含滿足 HAVING 子句條件的名稱:

❺ SQL Server中的聚合函數有哪些

SQL
Server中的聚合函數有:
1.count()
所有記錄數
2.count(*)所有非null記錄數
3.avg()

某一列平均值
4.min()
某一列最小值
5.max()
某一列最大值
6.sum()
某一列總和
使用方法:
1.

SELECT
COUNT(欄位1)
FROM
表A

統計欄位1在表A中出現的次數
2.

SELECT
學號,SUM(各科成績)
FROM
student
GROUP
BY
學號

用來根據統計學生的總成績

❻ SQL Server中的聚合函數有哪些

聚合函數count()
sum()
count()
匯總個數,sum()匯總總和.比如一個學生表
student,
mark(id,score)
成績表
select
count(*)
from
student
--所有同學的個數
select
sum(score)
from
mark
--求出所有分數的總和

❼ SQL Server中的聚合函數有哪些

SQL Server中的聚合函數有:

1.count() 所有記錄數

2.count(*)所有非null記錄數

3.avg() 某一列平均值

4.min() 某一列最小值

5.max() 某一列最大值

6.sum() 某一列總和

使用方法:

1. SELECT COUNT(欄位1) FROM 表A 統計欄位1在表A中出現的次數

2. SELECT 學號,SUM(各科成績) FROM student GROUP BY 學號 用來根據統計學生的總成績

熱點內容
安卓上哪裡下大型游戲 發布:2024-12-23 15:10:58 瀏覽:189
明日之後目前適用於什麼配置 發布:2024-12-23 14:56:09 瀏覽:56
php全形半形 發布:2024-12-23 14:55:17 瀏覽:829
手機上傳助手 發布:2024-12-23 14:55:14 瀏覽:733
什麼樣的主機配置吃雞開全效 發布:2024-12-23 14:55:13 瀏覽:830
安卓我的世界114版本有什麼 發布:2024-12-23 14:42:17 瀏覽:711
vbox源碼 發布:2024-12-23 14:41:32 瀏覽:279
詩經是怎麼存儲 發布:2024-12-23 14:41:29 瀏覽:661
屏蔽視頻廣告腳本 發布:2024-12-23 14:41:24 瀏覽:420
php解析pdf 發布:2024-12-23 14:40:01 瀏覽:819