當前位置:首頁 » 編程語言 » sql聚合函數有哪些

sql聚合函數有哪些

發布時間: 2022-09-04 20:16:05

sql Server 中如何使用聚合函數

根據我的使用經驗,聚合函數主要是做統計用的,有以下兩種形式比較常見:
1. SELECT COUNT(欄位1) FROM 表A 統計欄位1在表A中出現的次數
2. SELECT 學號,SUM(各科成績) FROM student GROUP BY 學號 用來根據統計學生的總成績

❷ sql server中什麼是聚合函數

count() 所有記錄數
count(*)所有非null記錄數
avg() 某一列平均值

min() 某一列最小值
max() 某一列最大值
sum() 某一列總和

❸ select SQL 語言中常用的合計函數有哪些

聚合函數是對一組值執行計算並返回單一的值的函數,它經常與SELECT語句的GROUP BY子句一同使用,SQL SERVER 中具體有哪些聚合函數呢?我們來一一看一下:

  1. AVG 返回指定組中的平均值,空值被忽略。

  2. 例:select prd_no,avg(qty) from sales group by prd_no

  3. 2. COUNT 返回指定組中項目的數量。

  4. 例:select count(prd_no) from sales

  5. 3. MAX 返回指定數據的最大值。

  6. 例:select prd_no,max(qty) from sales group by prd_no

  7. 4. MIN 返回指定數據的最小值。

  8. 例:select prd_no,min(qty) from sales group by prd_no

  9. 5. SUM 返回指定數據的和,只能用於數字列,空值被忽略。

  10. 例:select prd_no,sum(qty) from sales group by prd_no

  11. 6. COUNT_BIG 返回指定組中的項目數量,與COUNT函數不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

  12. 例:select count_big(prd_no) from sales

  13. 7. GROUPING 產生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值為1.當所添加的行不是由CUBE或ROLLUP產生時,輸出值為0.

  14. 例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

  15. 8. BINARY_CHECKSUM 返回對表中的行或表達式列表計算的二進制校驗值,用於檢測表中行的更改。

  16. 例:select prd_no,binary_checksum(qty) from sales group by prd_no

  17. 9. CHECKSUM_AGG 返回指定數據的校驗值,空值被忽略。

  18. 例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

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

  20. 11. STDEV 返回給定表達式中所有值的統計標准偏差。

  21. 例:select stdev(prd_no) from sales

  22. 12. STDEVP 返回給定表達式中的所有值的填充統計標准偏差。

  23. 例:select stdevp(prd_no) from sales

  24. 13. VAR 返回給定表達式中所有值的統計方差。

  25. 例:select var(prd_no) from sales

  26. 14. VARP 返回給定表達式中所有值的填充的統計方差。

  27. 例:select varp(prd_no) from sales

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

❻ 在SQL中的聚合函數

可以直接用sno分組,但是select後面能用的欄位只能是聚合函數(欄位)或者是groupby子句中的欄位。

如果在group by中不用sname,你可以這樣寫,但是你要看是否符合題目要求。
select min(sname)
from student s join sc
on s.sno=c.sno
group by sc.sno
having count(sc.sno)>3

❼ 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 學號 用來根據統計學生的總成績

❽ T-SQL中的聚合函數有哪些

Transact-SQL 提供下列聚合函數:AVGMINCHECKSUM_AGGSUMCOUNTSTDEVCOUNT_BIGSTDEVPGROUPINGVARMAXVARP

❾ 在sql中什麼是聚合函數 啊

select sum(欄位名) from 表名
sum 就是一個聚合函數,求某一欄位的值

❿ 所有的sql聚合函數的應用例題 謝謝

1、數值型常用函數函數返回值樣例顯示

ceil(n) 大於或等於數值n的最小整數select ceil(10.6) from al; 11

floor(n) 小於等於數值n的最大整數 select ceil(10.6) from al; 10

mod(m,n) m除以n的余數,若n=0,則返回m select mod(7,5) from al; 2

power(m,n) m的n次方 select power(3,2) from al; 9

round(n,m) 將n四捨五入,保留小數點後m位select round(1234.5678,2) from al; 1234.57

sign(n) 若n=0,則返回0,否則,n>0,則返回1,n<0,則返回-1 select sign(12) from al; 1

sqrt(n) n的平方根select sqrt(25) from al ; 5

2、常用字元函數

initcap(char) 把每個字元串的第一個字元換成大寫select initicap('mr.ecop') from al; Mr.Ecop

lower(char) 整個字元串換成小寫select lower('MR.ecop') from al; mr.ecop

replace(char,str1,str2) 字元串中所有str1換成str2 select replace('Scott','s','Boy') from al; Boycott

substr(char,m,n) 取出從m字元開始的n個字元的子串select substr('ABCDEF',2,2) from al; CD

length(char) 求字元串的長度select length('ACD') from al; 3

|| 並置運算符 select 'ABCD'||'EFGH' from al; ABCDEFGH

3、日期型函數

sysdate 當前日期和時間 select sysdate from al;

last_day 本月最後一天 select last_day(sysdate) from al;

add_months(d,n)當前日期d後推n個月 select add_months(sysdate,2) from al;

months_between(d,n) 日期d和n相差月數 select months_between(sysdate,to_date('20020812','YYYYMMDD')) from al;

next_day(d,day) d後第一周指定day的日期 select next_day(sysdate,'Monday') from al;

day 格式有'Monday' 星期一'Tuesday' 星期二

'wednesday' 星期三 'Thursday' 星期四 'Friday' 星期五

'Saturday' 星期六 'Sunday' 星期日

4、特殊格式的日期型函數

Y或YY或YYY 年的最後一位,兩位,三位 select to_char(sysdate,'YYY') from al;

Q 季度,1-3月為第一季度select to_char(sysdate,'Q') from al;

MM 月份數select to_char(sysdate,'MM') from al;

RM 月份的羅馬表示 select to_char(sysdate,'RM') from al; IV

month 用9個字元表示的月份名 select to_char(sysdate,'month') from al;

ww 當年第幾周select to_char(sysdate,'ww') from al;

w 本月第幾周select to_char(sysdate,'w') from al;

DDD 當年第幾天,一月一日為001 ,二月一日032 select to_char(sysdate,'DDD') from al;

DD 當月第幾天 select to_char(sysdate,'DD') from al;

D 周內第幾天 select to_char(sysdate,'D') from al; 如sunday

DY 周內第幾天縮寫select to_char(sysdate,'DY') from al; 如sun

hh12 12小時制小時數select to_char(sysdate,'hh12') from al;

hh24 24小時制小時數select to_char(sysdate,'hh24') from al;

Mi 分鍾數 select to_char(sysdate,'Mi') from al;

ss 秒數 select to_char(sysdate,'ss') from al;

select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from a;to_number() 將合法的數字字元串 select to_number('88877') from al; 88877

to_char() 將數字轉換為字元串 select to_char(88877) from al; '88877'set serveroupt on;

dbms_output.put_line('hello world')set heading off 由於正在創建數據文件,不需要表頭

set pagesize 0 不需要分頁

set linesize 80 設置行的最大尺寸

set echo off 告訴sql plus 在執行語句時,不要回顯語句

set feedback off 禁止sql plus 顯示有多少滿足查詢的行被檢索到

col sales format 999,999,999

append 添加文本到當前行尾

change/old/new/ 在當前行用新的文本代替舊的文本

change/text 從當前行刪除wenb

del 刪除當前行

input text 在當前行之後添加一行

list 顯示緩沖區中的所有行

list n 顯示緩沖區中的第n行

list m n 顯示m到n

5、字元函數

--------------------------------------------------------------------------------

字元函數主要用於修改字元列。這些函數接受字元輸入,返回字元或數字值。Oracle 提供的一些字元函數如下。

1. CONCAT (char1, char2)

返回連接「char2」的「char1」。

示例 SELECT CONCAT( CONCAT(ename, ' is a '), job) FROM emp;

2. INITCAP(string)

將「string」的字元轉成大寫。

示例 Select INITCAP(ename) from emp;

3. LOWER (string)

將「string」轉成小寫。

示例 Select LOWER(ENAME) from emp;

4. LPAD(char1,n [,char2])

返回「char1」,左起由「char2」中的字元補充到「n」個字元長。如果「char1」比「n」長,則函數返回「char1」的前「n」個字元。

示例 SELECT LPAD(ename,15,'*') FROM emp;

5. LTRIM(string,trim_set)

從左邊刪除字元,此處「string」是資料庫的列,或者是字面字元串,而「trim_set」 是我們要去掉的字元的集合。

示例 SELECT LTRIM('abcdab','a') FROM DUAL;

6. REPLACE(string, if, then)

用 0 或其他字元代替字元串中的字元。「if」是字元或字元串,對於每個出現在「string」中的「if」,都用「then」的內容代替。

示例 SELECT REPLACE('JACK and JUE','J','BL') FROM DUAL;

7. RPAD(char1, n [,char2])

返回「char1」,右側用「char2」中的字元補充到「n」個字元長。如果 「char1」比「n」 長,則函數返回「char1」的前「n」個字元。

示例 SELECT RPAD(ename,15,'*') FROM emp;

8. RTRIM(string,trim_set)

從右側刪除字元,此處「string」是資料庫的列,或者是字面字元串,而「trim_set」 是我們要去掉的字元的集合。

示例 SELECT RTRIM('abcdef', 'f') FROM DUAL;

9. SOUNDEX(char)

返回包含「char」的表意字元的字元串。它允許比較英語中拼寫不同而發音類似的字。

示例 SELECT ename FROM emp

WHERE SOUNDEX(ename) = SoUNDEX('SMYTHE');

10. SUBSTR(string, start [,count])

返回「string」中截取的一部分。該命令截取「string」的一個子集,從「start」位置開始,持續「count」個字元。如果我們不指定「count」,則從「start」開始截取到「string」的尾部。

示例 SELECT SUBSTR('ABCDEFGIJKLM',3,4) FROM DUAL;

11. TRANSLATE(string, if, then)

「if」中字元的位置,並檢查「then」的相同位置,然後用該位置的字元替換 「string」中的字元。

示例 SELECT TRANSLATE(ename,'AEIOU', 'XXXXX') FROM emp;

12. UPPER(string)

返回大寫的「string」。

示例 SELECT UPPER('aptech computer ecation') FROM al;

13. ASCII(string)

該命令是「American Standard Code for Information Interchange」的縮寫。它是使用數字表示可列印字元的基本規則。該函數返回 「string」中第一個(最左邊)字元的 ASCII 值。

示例 SELECT ASCII('APTECH') from al;

14. INSTR (string, set[, start[, occurrence] ] )

該命令「string」中從「start」位置開始查找字元集合的位置,再查找「set」出現的第一次、第二次等等的「occurrence」(次數)。「start」的值也可以是負數,代表從字元串結尾開始向反方向搜索。該函數也用於數字和日期數據類型。

示例 SELECT INSTR('aptech is aptech','ap',1,2) FROM DUAL;

15. LENGTH(string)

返回「string」的長度值。

示例 SELECT ename, LENGTH(ename) FROM emp

WHERE empno = 7698;

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lihan6415151528/archive/2009/08/06/4417974.aspx

熱點內容
可緩存影視 發布:2025-01-15 07:42:50 瀏覽:799
php函數默認值 發布:2025-01-15 07:34:31 瀏覽:238
編譯應用後apk無法打開 發布:2025-01-15 07:33:45 瀏覽:437
lc腳本編輯器 發布:2025-01-15 07:18:59 瀏覽:528
追劇腳本 發布:2025-01-15 07:00:39 瀏覽:446
c語言字元串庫函數 發布:2025-01-15 06:54:49 瀏覽:526
c語言的工作 發布:2025-01-15 06:50:50 瀏覽:521
口語交際訪問 發布:2025-01-15 06:44:13 瀏覽:329
編程少兒學習 發布:2025-01-15 06:39:03 瀏覽:504
伺服器搭建怎麼設置 發布:2025-01-15 06:39:01 瀏覽:152