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

資料庫中的組函數有哪些

發布時間: 2022-09-06 01:12:05

sql 語句中那些是聚合函數

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

示例如下,

1、創建測試表,

create table test_group(id number, value number);

㈡ 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 檢查的行進行分組和聚集計算。

㈢ 資料庫常用函數

1、系統信息函數

系統信息函數用來查詢MySQL資料庫的系統信息。

函數代碼:

SELECT VERSION()

->5.0.67-community-nt

CONNECTION_ID() 返回伺服器的連接數

DATABASE()、SCHEMA 返回當前資料庫名

USER()、SYSTEM_USER()返回當前用戶

2、日期時間函數

MySQL的日期和時間函數主要用於處理日期時間。

函數代碼:

CURDATE(),CURRENT_DATE() curdate() 返回當前日期

SELECT CURDATE()

->2014-12-17

CURTIME(),CURRENT_TIME curtime()
返回當前時間

SELECT CURTIME()
->15:59:02

3、字元串函數

函數代碼:

CHAR_LENGTH(s) char_length()返回字元串s的字元數

SELECT CHAR_LENGTH('你好123') -- 5

CONCAT(s1,s2,...) concat(s1,s2...)

將字元串s1,s2等多個字元串合並為一個字元串

4、加密函數

加密函數是MySQL用來對數據進行加密的函數。

函數代碼:

PASSWORD(str)

該函數可以對字元串str進行加密,一般情況下,PASSWORD(str)用於給用戶的密碼加密。

SELECT PASSWORD('123')

->*

5、數學函數

數學函數主要用於處理數字,包括整型、浮點數等。

函數代碼:

ABS(x) abs(x)返回x的絕對值

SELECT ABS(-1) -- 返回1

CEIL(x),CEILING(x) cell(x),celling(x)

返回大於或等於x的最小整數

SELECT CEIL(1.5) -- 返回2

㈣ 聚組函數是什麼,有哪些

就是用於計算匯總一些資料庫信息,對資料庫的數據進行統計,得到統計的結果的一些函數
比如max,min,avg 等 像excel里的分類匯總

具體地址
http://hi..com/xionghy/blog/item/629186cb3aab11fd52664fdf.html

㈤ php 常用的數組函數都有哪些 作用是什麼有什麼特點 怎麼使用

php常用的數組函數的作用特點如下:


  1. array_change_key_case -- 返回字元串鍵名全為小寫或大寫的數組

  2. array_chunk -- 將一個數組分割成多個

  3. array_combine -- 創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值

  4. array_count_values -- 統計數組中所有的值出現的次數

  5. array_diff_assoc -- 帶索引檢查計算數組的差集

  6. array_diff_key -- 使用鍵名比較計算數組的差集

  7. array_diff_uassoc -- 用用戶提供的回調函數做索引檢查來計算數組的差集

  8. array_diff_ukey -- 用回調函數對鍵名比較計算數組的差集

  9. array_diff -- 計算數組的差集

  10. array_fill_keys -- 使用指定的鍵和值填充數組

  11. array_fill -- 用給定的值填充數組

  12. array_filter -- 用回調函數過濾數組中的單元

  13. array_flip -- 交換數組中的鍵和值

  14. array_intersect_assoc -- 帶索引檢查計算數組的交集

  15. array_intersect_key -- 使用鍵名比較計算數組的交集

  16. array_intersect_uassoc -- 帶索引檢查計算數組的交集,用回調函數比較索引

  17. array_intersect_ukey -- 用回調函數比較鍵名來計算數組的交集

  18. array_intersect -- 計算數組的交集

  19. array_key_exists -- 檢查給定的鍵名或索引是否存在於數組中

  20. array_keys -- 返回數組中所有的鍵名

  21. array_map -- 將回調函數作用到給定數組的單元上

  22. array_merge_recursive -- 遞歸地合並一個或多個數組

  23. array_merge -- 合並一個或多個數組

  24. array_multisort -- 對多個數組或多維數組進行排序

  25. array_pad -- 用值將數組填補到指定長度

  26. array_pop -- 將數組最後一個單元彈出(出棧)

  27. array_proct -- 計算數組中所有值的乘積

  28. array_push -- 將一個或多個單元壓入數組的末尾(入棧)

  29. array_rand -- 從數組中隨機取出一個或多個單元

  30. array_rece -- 用回調函數迭代地將數組簡化為單一的值

  31. array_replace_recursive -- 使用傳遞的數組遞歸替換第一個數組的元素

  32. array_replace -- 使用傳遞的數組替換第一個數組的元素

  33. array_reverse -- 返回一個單元順序相反的數組

  34. array_search -- 在數組中搜索給定的值,如果成功則返回相應的鍵名

  35. array_shift -- 將數組開頭的單元移出數組

  36. array_slice -- 從數組中取出一段

  37. array_splice -- 把數組中的一部分去掉並用其它值取代

  38. array_sum -- 計算數組中所有值的和

  39. array_udiff_assoc -- 帶索引檢查計算數組的差集,用回調函數比較數據

  40. array_udiff_uassoc -- 帶索引檢查計算數組的差集,用回調函數比較數據和索引

  41. array_udiff -- 用回調函數比較數據來計算數組的差集

  42. array_uintersect_assoc -- 帶索引檢查計算數組的交集,用回調函數比較數據

  43. array_uintersect_uassoc -- 帶索引檢查計算數組的交集,用回調函數比較數據和索引

  44. array_uintersect -- 計算數組的交集,用回調函數比較數據

  45. array_unique -- 移除數組中重復的值

  46. array_unshift -- 在數組開頭插入一個或多個單元

  47. array_values -- 返回數組中所有的值

  48. array_walk_recursive -- 對數組中的每個成員遞歸地應用用戶函數

  49. array_walk -- 對數組中的每個成員應用用戶函數

  50. array -- 新建一個數組

  51. arsort -- 對數組進行逆向排序並保持索引關系

  52. asort -- 對數組進行排序並保持索引關系

  53. compact -- 建立一個數組,包括變數名和它們的值

  54. count -- 計算數組中的單元數目或對象中的屬性個數

  55. current -- 返回數組中的當前單元

  56. each -- 返回數組中當前的鍵/值對並將數組指針向前移動一步

  57. end -- 將數組的內部指針指向最後一個單元

  58. extract -- 從數組中將變數導入到當前的符號表

  59. in_array -- 檢查數組中是否存在某個值

  60. key -- 從關聯數組中取得鍵名

  61. krsort -- 對數組按照鍵名逆向排序

  62. ksort -- 對數組按照鍵名排序

  63. list -- 把數組中的值賦給一些變數

  64. natcasesort -- 用「自然排序」演算法對數組進行不區分大小寫字母的排序

  65. natsort -- 用「自然排序」演算法對數組排序

  66. next -- 將數組中的內部指針向前移動一位

  67. pos -- current 的別名

  68. prev -- 將數組的內部指針倒回一位

  69. range -- 建立一個包含指定范圍單元的數組

  70. reset -- 將數組的內部指針指向第一個單元

  71. rsort -- 對數組逆向排序

  72. shuffle -- 將數組打亂

  73. sizeof -- count 的別名

  74. sort -- 對數組排序

  75. uasort -- 使用用戶自定義的比較函數對數組中的值進行排序並保持索引關聯

  76. uksort -- 使用用戶自定義的比較函數對數組中的鍵名進行排序

  77. usort -- 使用用戶自定義的比較函數對數組中的值進行排序


關於如何使用,那是要根據使用者需求來衡量,不能一言概括

使用語法如下:

<?php
$arr=array('Hello','World!');
$arr=implode(',',$arr);

echo$arr;
?>

結果是:HelloWorld!


如果你想更多的了解php的數組函數,我建議你詳細地去看看php手冊

php手冊官網:http://www.php.net/manual/zh/index.php

㈥ oracle 的組函數有哪些

AVG 返回平均值
COUNT 返回記錄的數量
MAX 返回最大值
MIN 返回最小值
SUM 返回總值
STDDEV 返回標准差
VARIANCE 返回統計方差

㈦ 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])

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

(7)資料庫中的組函數有哪些擴展閱讀

增加新用戶

(注意:和上面不同,下面的因為是 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 的提示符下進行的,而且每個命令以分號結束。

㈧ 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

㈨ ORACLE中什麼是組函數

組(多行)函數
與單行函數相比,oracle提供了豐富的基於組的,多行的函數。這些函數可以在select或select的having子句中使用,當用於select子串時常常都和GROUP BY一起使用。
AVG([{DISYINCT|ALL}])
返回數值的平均值。預設設置為ALL.
SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal) FROM scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413
COUNT({*|DISTINCT|ALL} )
返回查詢中行的數目,預設設置是ALL,*表示返回所有的行。
MAX([{DISTINCT|ALL}])
返回選擇列表項目的最大值,如果x是字元串數據類型,他返回一個VARCHAR2數據類型,如果X是一個DATA數據類型,返回一個日期,如果X是numeric數據類型,返回一個數字。注意distinct和all不起作用,應為最大值與這兩種設置是相同的。
MIN([{DISTINCT|ALL}])
返回選擇列表項目的最小值。
STDDEV([{DISTINCT|ALL}])
返回選者的列表項目的標准差,所謂標准差是方差的平方根。
SUM([{DISTINCT|ALL}])
返回選擇列表項目的數值的總和。
VARIANCE([{DISTINCT|ALL}])
返回選擇列表項目的統計方差。
用GROUP BY給數據分組
正如題目暗示的那樣組函數就是操作那些已經分好組的數據,我們告訴資料庫用GROUP BY怎樣給數據分組或者分類,當我們在SELECT語句的SELECT子句中使用組函數時,我們必須把為分組或非常數列放置在GROUP BY子句中,如果沒有用group by進行專門處理,那麼預設的分類是將整個結果設為一類。
select stat,counter(*) zip_count from zip_codes GROUP BY state;ST ZIP_COUNT-- ---------AK 360AL 1212AR 1309AZ 768CA 3982
在這個例子中,我們用state欄位分類;如果我們要將結果按照zip_codes排序,可以用ORDER BY語句,ORDER BY子句可以使用列或組函數。
select stat,counter(*) zip_count from zip_codes GROUP BY state ORDER BY COUNT(*) DESC;ST COUNT(*)-- --------NY 4312PA 4297TX 4123CA 3982
用HAVING子句限制分組數據
現在你已經知道了在查詢的SELECT語句和ORDER BY子句中使用主函數,組函數只能用於兩個子串中,組函數不能用於WHERE子串中,例如下面的查詢是錯誤的:
錯誤SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' AND SUM(sale_amount)>10000 GROUP BY sales_clerk
這個語句中資料庫不知道SUM()是什麼,當我們需要指示資料庫對行分組,然後限制分組後的行的輸出時,正確的方法是使用HAVING語句:
SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' GROUP BY sales_clerkHAVING SUM(sale_amount)>10000;

㈩ 資料庫函數有哪些有人嗎

有 Funciton , 也就是函數
有 Procere , 也就是存儲過程
有 Package, 也就是 代碼包 (包含 head 和 body 兩部分, 可以理解為一個包裡面,定義多個 存儲過程或函數)
有 Types, 也就是 自定義數據類型
有 Triggers, 也就是 觸發器
有 Jobs, 也就是 資料庫作業 (定期執行的)
有 Table , 也就是表 (表有 普通表, 臨時表, 分區表)
有 Index, 也就是索引
有 Constraint, 也就是 約束 ( 也就是 某個表裡面的某一列, 必須滿足什麼約束條件)
有 View, 也就是 視圖
有 Materialized View, 叫 「物化視圖」, 這個有點復雜的。
有 Sequence , 叫 序列號。
有 User , 叫 用戶
有 Profile , 叫 用戶屬性文件 (用於限制 每個用戶 佔有資料庫資源的限制)
有 Synonyms, 叫 「同義詞」 (用於 便捷地訪問 其他用戶下的對象)
有 Database link 叫 「鏈接資料庫」 (用於訪問 其他機器上的 Oracle 資料庫)
有 TableSpace 叫 表空間 (用於 存放表數據的)
有 CURSOR 叫 游標, 用於 存儲過程裡面, 遍歷數據的。