sql聚合函數有哪些
❶ 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 中具體有哪些聚合函數呢?我們來一一看一下:
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
❹ 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