真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL中集合函數(shù)怎么用

這篇文章將為大家詳細(xì)講解有關(guān)MySQL中集合函數(shù)怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比姑蘇網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式姑蘇網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋姑蘇地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

到現(xiàn)在為止,你只學(xué)習(xí)了如何根據(jù)特定的條件從表中取出一條或多條記錄。但是,假如你想對一個(gè)表中的記錄進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。例如,如果你想統(tǒng)計(jì)存儲(chǔ)在表中的一次民意測驗(yàn)的投票結(jié)果?;蛘吣阆胫酪粋€(gè)訪問者在你的站點(diǎn)上平均花費(fèi)了多少時(shí)間。要對表中的任何類型的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),都需要使用集合函數(shù)。你可以統(tǒng)計(jì)記錄數(shù)目,平均值,最小值,最大值,或者求和。當(dāng)你使用一個(gè)集合函數(shù)時(shí),它只返回一個(gè)數(shù),該數(shù)值代表這幾個(gè)統(tǒng)計(jì)值之一。

這些函數(shù)的最大特點(diǎn)就是經(jīng)常和GROUP BY語句配合使用,需要注意的是集合函數(shù)不能和非分組的列混合使用。

行列計(jì)數(shù)

計(jì)算查詢語句返回的記錄行數(shù)

直接計(jì)算函數(shù)COUNT(*)的值,例如,計(jì)算pet表中貓的只數(shù):

>SELECT count(*) FROM pet WHERE species=’cat’;

+----------+

| count(*) |

+----------+

|        2 |

+----------+

統(tǒng)計(jì)字段值的數(shù)目

例如,計(jì)算pet表中species列的數(shù)目:

mysql> SELECT count(species) FROM pet;

+----------------+

| count(species) |

+----------------+

|              9 |

+----------------+

如果相同的種類出現(xiàn)了不止一次,該種類將會(huì)被計(jì)算多次。如果你想知道種類為某個(gè)特定值的寵物有多少個(gè),你可以使用WHERE子句,如下例所示:

mysql> SELECT COUNT(species) FROM pet WHERE species=cat ;

注意這條語句的結(jié)果:

+----------------+

| COUNT(species) |

+----------------+

|              2 |

+----------------+

這個(gè)例子返回種類為cat的作者的數(shù)目。如果這個(gè)名字在表pet中出現(xiàn)了兩次,則次函數(shù)的返回值是2。 而且它和上面提到過的語句的結(jié)果是一致的:

SELECT count(*) FROM pet WHERE species=’cat’

實(shí)際上,這兩條語句是等價(jià)的。

假如你想知道有多少不同種類的的寵物數(shù)目。你可以通過使用關(guān)鍵字DISTINCT來得到該數(shù)目。如下例所示:

mysql> SELECT COUNT(DISTINCT species) FROM pet;

+-------------------------+

| COUNT(DISTINCT species) |

+-------------------------+

|                       5 |

+-------------------------+

如果種類cat出現(xiàn)了不止一次,它將只被計(jì)算一次。關(guān)鍵字DISTINCT 決定了只有互不相同的值才被計(jì)算。

通常,當(dāng)你使用COUNT()時(shí),字段中的空值將被忽略。

另外,COUNT()函數(shù)通常和GROUP BY子句配合使用,例如可以這樣返回每種寵物的數(shù)目:

mysql> SELECT species,count(*) FROM pet GROUP BY species;

+---------+----------+

| species | count(*) |

+---------+----------+

| bird    |        2 |

| cat     |        2 |

| dog     |        3 |

| hamster |        1 |

| snake   |        1 |

+---------+----------+

計(jì)算字段的平均值

需要計(jì)算這些值的平均值。使用函數(shù)AVG(),你可以返回一個(gè)字段中所有值的平均值。

假如你對你的站點(diǎn)進(jìn)行一次較為復(fù)雜的民意調(diào)查。訪問者可以在1到10之間投票,表示他們喜歡你站點(diǎn)的程度。你把投票結(jié)果保存在名為vote的INT型字段中。要計(jì)算你的用戶投票的平均值,你需要使用函數(shù)AVG():

SELECT AVG(vote) FROM opinion

這個(gè)SELECT語句的返回值代表用戶對你站點(diǎn)的平均喜歡程度。函數(shù)AVG()只能對數(shù)值型字段使用。這個(gè)函數(shù)在計(jì)算平均值時(shí)也忽略空值。

再給出一個(gè)實(shí)際例子,例如我們要計(jì)算pet表中每種動(dòng)物年齡的平均值,那么使用AVG()函數(shù)和GROUP BY子句:

mysql> SELECT species,AVG(CURDATE()-birth) FROM pet GROUP BY species;

返回的結(jié)果為:

+---------+----------------------+

| species | AVG(CURDATE()-birth) |

+---------+----------------------+

| bird    |                34160 |

| cat     |              74959.5 |

| dog     |      112829.66666667 |

| hamster |                19890 |

| snake   |                49791 |

+---------+----------------------+

計(jì)算字段值的和

假設(shè)你的站點(diǎn)被用來出售某種商品,已經(jīng)運(yùn)行了兩個(gè)月,是該計(jì)算賺了多少錢的時(shí)候了。假設(shè)有一個(gè)名為orders的表用來記錄所有訪問者的定購信息。要計(jì)算所有定購量的總和,你可以使用函數(shù)SUM():

SELECT SUM(purchase_amount) FROM orders

函數(shù)SUM()的返回值代表字段purchase_amount中所有值的總和。字段purchase_amount的數(shù)據(jù)類型也許是DECIMAL類型,但你也可以對其它數(shù)值型字段使用函數(shù)SUM()。

用一個(gè)不太恰當(dāng)?shù)睦诱f明,我們計(jì)算pet表中同種寵物的年齡的總和:

mysql> SELECT species,SUM(CURDATE()-birth) FROM pet GROUP BY species;

你可以查看結(jié)果,與前一個(gè)例子對照:

+---------+----------------------+

| species | SUM(CURDATE()-birth) |

+---------+----------------------+

| bird    |                68320 |

| cat     |               149919 |

| dog     |               338489 |

| hamster |                19890 |

| snake   |                49791 |

+---------+----------------------+

計(jì)算字段值的極值

求字段的極值,涉及兩個(gè)函數(shù)MAX()和MIN()。

例如,還是pet表,你想知道最早的動(dòng)物出生日期,由于日期最早就是最小,所以可以使用MIN()函數(shù):

mysql> SELECT MIN(birth) FROM pet;

+------------+

| MIN(birth) |

+------------+

| 1989-05-13 |

+------------+

但是,你只知道了日期,還是無法知道是哪只寵物,你可能想到這樣做:

SELECT name,MIN(birth) FROM pet;

但是,這是一個(gè)錯(cuò)誤的SQL語句,因?yàn)榧虾瘮?shù)不能和非分組的列混合使用,這里name列是沒有分組的。所以,你無法同時(shí)得到name列的值和birth的極值。

MIN()函數(shù)同樣可以與GROUP BY子句配合使用,例如,找出每種寵物中最早的出生日期:

mysql> SELECT species,MIN(birth) FROM pet GROUP BY species;

下面是令人滿意的結(jié)果:

+---------+------------+

| species | MIN(birth) |

+---------+------------+

| bird    | 1997-12-09 |

| cat     | 1993-02-04 |

| dog     | 1989-05-13 |

| hamster | 1999-03-30 |

| snake   | 1996-04-29 |

+---------+------------+

另一方面,如果你想知道最近的出生日期,就是日期的最大值,你可以使用MAX()函數(shù),如下例所示:

mysql> SELECT species,MAX(birth) FROM pet GROUP BY species;

+---------+------------+

| species | MAX(birth) |

+---------+------------+

| bird    | 1998-09-11 |

| cat     | 1994-03-17 |

| dog     | 1990-08-31 |

| hamster | 1999-03-30 |

| snake   | 1996-04-29 |

+---------+------------+

關(guān)于“MySQL中集合函數(shù)怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。


新聞名稱:MySQL中集合函數(shù)怎么用
URL鏈接:http://weahome.cn/article/pcgcii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部