當前位置:首頁 » 數據倉庫 » 資料庫聚集函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫聚集函數

發布時間: 2022-08-18 02:19:49

Ⅰ 聚集函數是什麼

和大多數其它關系資料庫產品一樣, 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); WRONG不過這個方法不能運轉,因為聚集 max 不能用於 WHERE 子句中。 (存在這個限制是因為 WHERE 子句決定哪些行可以進入聚集階段;因此它必需在聚集函數之前計算。) 不過,我們通常都可以用其它方法實現我們的目的;這里我們就可以使用子查詢:

SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

city--------------- San Francisco(1 row)這樣做是 OK 的,因為子查詢是一次獨立的計算,它獨立於外層的查詢計算出自己的聚集。

聚集同樣也常用於 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%'(1) GROUP BY city HAVING max(temp_lo) < 40; LIKE 做模式匹配,在 Section 里有解釋。

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

Ⅱ 聚集函數的介紹

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

Ⅲ 資料庫中對數據進行統計時,計數的聚集函數是什麼

--統計表中的所有記錄數
Select Count(*) From Table
--統計表中某相同欄位的記錄數
Select 欄位,Count(*) From Table Group By 欄位

Ⅳ mysql中常用的聚合函數有哪些

一、AVG

AVG(col):返回指定列的平均值

二、COUNT

COUNT(col):返回指定列中非NULL值的個數

三、MIN/MAX

MIN(col):返回指定列的最小值

MAX(col):返回指定列的最大值

四、SUM

SUM(col):返回指定列的所有值之和

五、GROUP_CONCAT

GROUP_CONCAT([DISTINCT] expr [,expr ...]

[ORDER BY {unsigned_integer | col_name | expr}

[ASC | DESC] [,col_name ...]]

[SEPARATOR str_val])

返回由屬於一組的列值連接組合而成的結果

(4)資料庫聚集函數擴展閱讀

增加新用戶

(注意:和上面不同,下面的因為是 MySQL 環境中的命令,所以後面都帶一個分號作為命令結束符)

格式:grant select on 資料庫.* to 用戶名@登錄主機 identified by 「密碼」

例1、增加一個用戶 test1 密碼為 abc,讓他可以在任何主機上登錄,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以 root 用戶連入 MySQL,然後鍵入以下命令:

grant select,insert,update,delete on *.* to test1@「%」 Identified by 「abc」;

但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的mysql資料庫並對你的數據可以為所欲為了,解決辦法見例2。

例2、增加一個用戶 test2 密碼為 abc,讓他只可以在 localhost 上登錄,並可以對資料庫 mydb 進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL資料庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問資料庫,只能通過MYSQL主機上的web頁來訪問了。

grant select, insert, update, delete on mydb.* to test2@localhost identified by 「abc」;

如果你不想 test2 有密碼,可以再打一個命令將密碼消掉。

grant select, insert, update, delete on mydb.* to test2@localhost identified by 「」;

下面來看看 MySQL 中有關資料庫方面的操作。注意:必須首先登錄到 MySQL 中,以下操作都是在 MySQL 的提示符下進行的,而且每個命令以分號結束。

Ⅳ 關於資料庫中聚合函數問題

聚合函數對一組值執行計算並返回單一的值。聚合函數忽略空值。聚合函數經常與 SELECT 語句的 GROUP BY 子句一同使用。
所有聚合函數都具有確定性。任何時候用一組給定的輸入值調用它們時,都返回相同的值。有關函數確定性的更多信息,請參見確定性函數和非確定性函數。
僅在下列項中聚合函數允許作為表達式使用:
SELECT 語句的選擇列表(子查詢或外部查詢)。
COMPUTE 或 COMPUTE BY 子句。
HAVING 子句。
Transact-SQL 編程語言提供下列聚合函數:
AVG MAX
BINARY_CHECKSUM MIN
CHECKSUM SUM
CHECKSUM_AGG STDEV
COUNT STDEVP
COUNT_BIG VAR
GROUPING VARP

Ⅵ 在資料庫中什麼叫聚集

按照字面理解就差不多了,雖不是嚴謹的定義,但如下理解也夠用了。
聚集就是匯總一批細節數據,形成一個粗獷數據,說得有營養點兒,稱作「濃縮」也湊乎。
與之連用的是聚集函數,SQL標准提到了五個,分別是count、sum、avg、min、max,其中count就是不管細節的各條記錄是什麼樣子,給點個記錄總數,另外四個也是不管精緻的數據是什麼,求出籠統的總和、算術平均值、最小值、最大值,有的資料庫還擴充了標准方差、協方差等聚集函數以支持更多的分析需求。

Ⅶ 資料庫聚合函數count和count的區別

count 是用於統計查詢結果的個數,屬於聚合函數。

可以通過以下方面進行了解:

利用臨時表進行測試

withtbas
(
select1nfromalunionall
select1nfromalunionall
selectnullnfromalunionall
select2nfromalunionall
select3nfromal
)

1, 獲取查詢結果總行數

selectcount(*)fromtb;--5

由tb數據可見,tb中共有5條數據。

2,查詢非null欄位的行數

selectcount(n)fromtb;--4

該語句查詢欄位n不為null的總數量,由tb可見,n有一行為null,所以結果為4.

需要注意,若n為非null欄位,查詢總數時,使用count(*) 比 count(n)速度要快。

原因是count(欄位)在統計時,若欄位為null,計數不加。若欄位不是null,計數+1.

3, 統計非空欄位的非重復的內容數量

selectcount(distinctn)fromtb;--3

由於count(n)為獲取非null欄位數量。distinct為去掉重復值。所以,此結果為先去掉n的重復值再統計。

4,計算欄位的非重復數量

selectcount(distinctnvl(n,4)fromtb;--5

先提供null值為一個n中不存在的值,然後去掉重復值進行統計。

效果等同於

selectcount(distinctn)+1fromtb;

Ⅷ sql 聚合函數有哪些

聚合函數是對一組值執行計算並返回單一的值的函數,它經常與SELECT語句的GROUP BY子句一同使用,SQL SERVER 中具體有哪些聚合函數呢?我們來一一看一下:
1. AVG 返回指定組中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定組中項目的數量。
例:select count(prd_no) from sales

3. MAX 返回指定數據的最大值。
例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定數據的最小值。
例:select prd_no,min(qty) from sales group by prd_no

5. SUM 返回指定數據的和,只能用於數字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no

6. COUNT_BIG 返回指定組中的項目數量,與COUNT函數不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales

7. GROUPING 產生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值為1.當所添加的行不是由CUBE或ROLLUP產生時,輸出值為0.
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

8. BINARY_CHECKSUM 返回對表中的行或表達式列表計算的二進制校驗值,用於檢測表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no

9. CHECKSUM_AGG 返回指定數據的校驗值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

10. CHECKSUM 返回在表的行上或在表達式列表上計算的校驗值,用於生成哈希索引。

11. STDEV 返回給定表達式中所有值的統計標准偏差。
例:select stdev(prd_no) from sales

12. STDEVP 返回給定表達式中的所有值的填充統計標准偏差。
例:select stdevp(prd_no) from sales

13. VAR 返回給定表達式中所有值的統計方差。
例:select var(prd_no) from sales

14. VARP 返回給定表達式中所有值的填充的統計方差。
例:select varp(prd_no) from sales

Ⅸ 資料庫查詢,關於聚合函數 max()的用法。

  1. MAX()/MIN()是指SQL中的最大/最小值函數

  2. 因為聚合函數處理的是數據組,在本例中,MAX函數將整個TEACHER表看成一組

  3. 而TNAME、DNAME和TSEX的數據都沒有進行任何分組,因此SELECT語句沒有邏輯意義

  4. MAX()和MIN()函數不僅可以作用於數值型數據,也可以作用於字元串或是日期時間數據類型的數據。

  5. SQL 如下:

  6. 實例MAX()函數用於字元型數據

  7. 如下面代碼:

  8. SELECT MAX (a) AS MAXNAME

  9. FROMA

Ⅹ sql 語句中那些是聚合函數

常見聚合函數,max(最大)、min(最小)、sum(求和)、avg(平均)等,

示例如下,

1、創建測試表,

create table test_group(id number, value number);