4 回答

TA貢獻1719條經(jīng)驗 獲得超6個贊
聚合函數(shù)是對一組值執(zhí)行計算并返回單一的值的函數(shù),它經(jīng)常與SELECT語句的GROUP BY子句一同使用,SQL SERVER 中具體有哪些聚合函數(shù)呢?我們來一一看一下:
AVG 返回指定組中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
2. COUNT 返回指定組中項目的數(shù)量。
例:select count(prd_no) from sales
3. MAX 返回指定數(shù)據(jù)的最大值。
例:select prd_no,max(qty) from sales group by prd_no
4. MIN 返回指定數(shù)據(jù)的最小值。
例:select prd_no,min(qty) from sales group by prd_no
5. SUM 返回指定數(shù)據(jù)的和,只能用于數(shù)字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no
6. COUNT_BIG 返回指定組中的項目數(shù)量,與COUNT函數(shù)不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales
7. GROUPING 產(chǎn)生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值為1.當所添加的行不是由CUBE或ROLLUP產(chǎn)生時,輸出值為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 返回指定數(shù)據(jù)的校驗值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no
10. CHECKSUM 返回在表的行上或在表達式列表上計算的校驗值,用于生成哈希索引。
11. STDEV 返回給定表達式中所有值的統(tǒng)計標準偏差。
例:select stdev(prd_no) from sales
12. STDEVP 返回給定表達式中的所有值的填充統(tǒng)計標準偏差。
例:select stdevp(prd_no) from sales
13. VAR 返回給定表達式中所有值的統(tǒng)計方差。
例:select var(prd_no) from sales
14. VARP 返回給定表達式中所有值的填充的統(tǒng)計方差。
例:select varp(prd_no) from sales

TA貢獻1871條經(jīng)驗 獲得超8個贊
var...開頭的數(shù)據(jù)類型用來保存可變長度的數(shù)據(jù)的,以VARCHAR型和CHAR舉例來說:假如你向一個長度為四十個字符的VARCHAR型字段中輸入數(shù)據(jù)BIll GAtES。當你以后從這個字段中取出此數(shù)據(jù)時,你取出的數(shù)據(jù)其長度為十個字符——字符串Bill Gates的長度。 現(xiàn)在假如你把字符串輸入一個長度為四十個字符的CHAR型字段中,那么當你取出數(shù)據(jù)時,所取出的數(shù)據(jù)長度將是四十個字符。字符串的后面會被附加多余的空格。VARCHAR型字段較突出的好處是它可以比CHAR型字段占用更少的內(nèi)存和硬盤空間。當你的數(shù)據(jù)庫很大時,這種內(nèi)存和磁盤空間的節(jié)省會變得非常重要。不知這么解釋能否明白?

TA貢獻1856條經(jīng)驗 獲得超11個贊
前面的是參數(shù), 是調(diào)用這個存儲過程的時候從外部輸入進來的。
declare 是聲明變量。
比如說,
這個存儲過程是,只要你把學號輸入進來,
就能查詢這個學生的班級。
那么在這個存儲過程里面, 學號就是參數(shù)。
你給什么學號, 它就返回給你相應的班級。
又或者你也可以做成, 只要你輸入學號, 這個存儲過程就會將這個學生刪除。

TA貢獻2065條經(jīng)驗 獲得超14個贊
sql中declare是聲明的意思,就是聲明變量的,這個一般是用在函數(shù)和存儲過程中的。比如說,這個存儲過程是,只要你把學號輸入進來,就能查詢這個學生的班級。那么在這個存儲過程里面, 學號就是參數(shù)。你給什么學號, 它就返回給你相應的班級。又或者你也可以做成, 只要你輸入學號, 這個存儲過程就會將這個學生刪除。
mysql存儲過程中,定義變量有兩種方式:
1.使用set或select直接賦值,變量名以 @ 開頭.
例如:set @var=1;
可以在一個會話的任何地方聲明,作用域是整個會話,稱為會話變量。
2.以 DECLARE 關鍵字聲明的變量,只能在存儲過程中使用,稱為存儲過程變量,例如:
DECLARE var1 INT DEFAULT 0;
主要用在存儲過程中,或者是給存儲傳參數(shù)中。
兩者的區(qū)別是:
在調(diào)用存儲過程時,以DECLARE聲明的變量都會被初始化為 NULL。而會話變量(即@開頭的變量)則不會被再初始化,在一個會話內(nèi),只須初始化一次,之后在會話內(nèi)都是對上一次計算的結果,就相當于在是這個會話內(nèi)的全局變量。
在存儲過程中,使用動態(tài)語句,預處理時,動態(tài)內(nèi)容必須賦給一個會話變量。
例:
set @v_sql= sqltext;
PREPARE stmt FROM @v_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
有的時候在查詢更新數(shù)據(jù)庫的時候,需要多條語句的查詢,因此需要多次修改
declare可以滿足多次執(zhí)行,但數(shù)據(jù)只修改一次。
declare @local_variable data_type
DECLARE: 定義變量,變量第一個字母是“@”
聲明時需要指定變量的類型,
可以使用set和select對變量進行賦值,
在sql語句中就可以使用@local_variable來調(diào)用變量
聲明中可以提供值,否則聲明之后所有變量將初始化為NULL。
添加回答
舉報