Ⅰ 聚集函數是什麼
和大多數其它關系資料庫產品一樣, 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()的用法。
MAX()/MIN()是指SQL中的最大/最小值函數
因為聚合函數處理的是數據組,在本例中,MAX函數將整個TEACHER表看成一組
而TNAME、DNAME和TSEX的數據都沒有進行任何分組,因此SELECT語句沒有邏輯意義
MAX()和MIN()函數不僅可以作用於數值型數據,也可以作用於字元串或是日期時間數據類型的數據。
SQL 如下:
實例MAX()函數用於字元型數據
如下面代碼:
SELECT MAX (a) AS MAXNAME
FROMA
Ⅹ sql 語句中那些是聚合函數
常見聚合函數,max(最大)、min(最小)、sum(求和)、avg(平均)等,
示例如下,
1、創建測試表,
create table test_group(id number, value number);