select dept.dept_name,count(users.user_id)
成都創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、成都網(wǎng)站制作、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。
from tbl_user users
left join tbl_deptment dept
on users.deptid = dept.id
group by dept.id
這樣就可以聯(lián)查到所有部門名稱和人數(shù)了,表名和字段參照你自己的數(shù)據(jù)庫表
表統(tǒng)計信息是數(shù)據(jù)庫基于成本的優(yōu)化器最重要的參考信息;統(tǒng)計信息不準確,優(yōu)化器可能給出不夠優(yōu)化的執(zhí)行計劃或者是錯誤的執(zhí)行計劃。對統(tǒng)計信息的計算分為非持久化統(tǒng)計信息(實時計算)與持久化統(tǒng)計信息。
非持久化統(tǒng)計信息
統(tǒng)計信息沒有保存在磁盤上,而是頻繁的實時計算統(tǒng)計信息;
每次對表的訪問都會重新計算其統(tǒng)計信息;
假設(shè)針對一張大表的頻繁查詢,那么每次都要重新計算統(tǒng)計信息,很耗費資源。
持久化統(tǒng)計信息
把一張表在某一時刻的統(tǒng)計信息值保存在磁盤上;
避免每次查詢時重新計算;
如果表更新不是很頻繁,或者沒有達到 MySQL 必須重新計算統(tǒng)計信息的臨界值,可直接從磁盤上獲取;
即使 MySQL 服務(wù)重啟,也可以快速的獲取統(tǒng)計信息值;
統(tǒng)計信息的持久化可以針對全局設(shè)置也可以針對單表設(shè)置。
接下來,詳細說 MySQL 統(tǒng)計信息如何計算,何時計算,效果評估等問題。在 MySQL Server 層來控制是否自動計算統(tǒng)計信息的分布,并且來決策是持久化還是非持久化。
用學院和及專業(yè)分組計數(shù)即可獲取相應(yīng)的人數(shù)。
假設(shè)有學生結(jié)構(gòu)表如下:
students(sid,sname,college,speciality)
列出每個學院下每個專業(yè)的學生人數(shù)
select college,speciality,count(*)
as persons from students
group by college,speciality;
select?姓名,性別,count(*)?AS?男性人數(shù)?from?[表名]?where?[性別]?=?'男'?group?by?[姓名]
結(jié)果是這樣的:
姓名 ? ? 性別 ? ? ?男性人數(shù)
張三 ? ? ? 男 ? ? ? ? ? ?7
李四 ? ? ? 男 ? ? ? ? ? ?2
王五 ? ? ? 男 ? ? ? ? ? ?5