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

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

MySQLGROUPBY語句-創(chuàng)新互聯(lián)

MySQL GROUP BY 語句

GROUP BY 語句根據(jù)一個或多個列對結(jié)果集進(jìn)行分組。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、濱海網(wǎng)站維護(hù)、網(wǎng)站推廣。

在分組的列上我們可以使用 COUNT, SUM, AVG,等函數(shù)。

GROUP BY 語法

SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;

實例演示

本章節(jié)實例使用到了以下表結(jié)構(gòu)及數(shù)據(jù),使用前我們可以先將以下數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中。

SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- --  Table structure for `employee_tbl` -- ---------------------------- DROP TABLE IF EXISTS `employee_tbl`; CREATE TABLE `employee_tbl` (   `id` int(11) NOT NULL,   `name` char(10) NOT NULL DEFAULT '',   `date` datetime NOT NULL,   `singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登錄次數(shù)',   PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- --  Records of `employee_tbl` -- ---------------------------- BEGIN; INSERT INTO `employee_tbl` VALUES ('1', '小明', '2016-04-22 15:25:33', '1'), ('2', '小王', '2016-04-20 15:25:47', '3'), ('3', '小麗', '2016-04-19 15:26:02', '2'), ('4', '小王', '2016-04-07 15:26:14', '4'), ('5', '小明', '2016-04-11 15:26:40', '4'), ('6', '小明', '2016-04-04 15:26:54', '2'); COMMIT; SET FOREIGN_KEY_CHECKS = 1;

導(dǎo)入成功后,執(zhí)行以下 SQL 語句:

mysql> set names utf8; mysql> SELECT * FROM employee_tbl; +----+--------+---------------------+--------+ | id | name   | date                | singin | +----+--------+---------------------+--------+ |  1 | 小明 | 2016-04-22 15:25:33 |      1 | |  2 | 小王 | 2016-04-20 15:25:47 |      3 | |  3 | 小麗 | 2016-04-19 15:26:02 |      2 | |  4 | 小王 | 2016-04-07 15:26:14 |      4 | |  5 | 小明 | 2016-04-11 15:26:40 |      4 | |  6 | 小明 | 2016-04-04 15:26:54 |      2 | +----+--------+---------------------+--------+ 6 rows in set (0.00 sec)

接下來我們使用 GROUP BY 語句 將數(shù)據(jù)表按名字進(jìn)行分組,并統(tǒng)計每個人有多少條記錄:

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name; +--------+----------+ | name   | COUNT(*) | +--------+----------+ | 小麗 |        1 | | 小明 |        3 | | 小王 |        2 | +--------+----------+ 3 rows in set (0.01 sec)

使用 WITH ROLLUP

WITH ROLLUP 可以實現(xiàn)在分組統(tǒng)計數(shù)據(jù)基礎(chǔ)上再進(jìn)行相同的統(tǒng)計(SUM,AVG,COUNT…)。

例如我們將以上的數(shù)據(jù)表按名字進(jìn)行分組,再統(tǒng)計每個人登錄的次數(shù):

mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; +--------+--------------+ | name   | singin_count | +--------+--------------+ | 小麗 |            2 | | 小明 |            7 | | 小王 |            7 | | NULL   |           16 | +--------+--------------+ 4 rows in set (0.00 sec)

其中記錄 NULL 表示所有人的登錄次數(shù)。

我們可以使用 coalesce 來設(shè)置一個可以取代 NUll 的名稱,coalesce 語法:

select coalesce(a,b,c);

參數(shù)說明:如果a==null,則選擇b;如果b==null,則選擇c;如果a!=null,則選擇a;如果a b c 都為null ,則返回為null(沒意義)。

以下實例中如果名字為空我們使用總數(shù)代替:

mysql> SELECT coalesce(name, '總數(shù)'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; +--------------------------+--------------+ | coalesce(name, '總數(shù)') | singin_count | +--------------------------+--------------+ | 小麗                   |            2 | | 小明                   |            7 | | 小王                   |            7 | | 總數(shù)                   |           16 | +--------------------------+--------------+ 4 rows in set (0.01 sec)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前題目:MySQLGROUPBY語句-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/ddiech.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部