新聞中心
統(tǒng)計查詢常用函數(shù)匯總
小編在平時應(yīng)用中經(jīng)常會用到一些統(tǒng)計數(shù)據(jù),例如當(dāng)前所有(或者滿足某些條件)的用戶數(shù)、所有用戶的最大積分、學(xué)生的平均成績等等,小編為這些統(tǒng)計操作提供了一系列的內(nèi)置方法: 1. count():統(tǒng)計數(shù)據(jù)行數(shù) 2. max():統(tǒng)計某個字段最大數(shù)據(jù) 3. min():統(tǒng)計某個字段最小數(shù)據(jù) 4. avg():統(tǒng)計某個字段平均數(shù)據(jù) 5. sum():統(tǒng)計某個字段數(shù)據(jù)之和 上述統(tǒng)計查詢方法都是獨立的方法且支持連貫操作。 count() count() 方法用于統(tǒng)計數(shù)據(jù)行數(shù)。 例子: public function read(){ $Dao = M('User'); // 獲取用戶數(shù): $userCount = $Dao->count(); // 添加條件: $userCount2 = $Dao->where('uid > 10')->count(); $this->assign('userCount', $userCount); $this->display(); } 上例中,兩個查詢語句實際執(zhí)行的 SQL 為: SELECT COUNT(*) AS tp_count FROM user LIMIT 1 SELECT COUNT(*) AS tp_count FROM user WHERE uid > 10 LIMIT 1 可以在模板中直接輸出得到的統(tǒng)計數(shù)據(jù): 共有用戶 {$userCount} 人。 max() max() 方法用于統(tǒng)計某個字段最大數(shù)據(jù)。 統(tǒng)計用戶最大積分例子: $maxScore = $Dao->max('score'); 實際執(zhí)行的 SQL 為: SELECT MAX(score) AS tp_max FROM user LIMIT 1 min() min() 統(tǒng)計某個字段最小數(shù)據(jù)。 獲取積分大于 0 的用戶的最小積分例子: $minScore = $Dao->where('score>0')->min('score'); 實際執(zhí)行的 SQL 為: 實際執(zhí)行SQL:SELECT MIN(score) AS tp_min FROM user WHERE score>0 LIMIT 1 avg() avg() 統(tǒng)計某個字段平均數(shù)據(jù)。 獲取用戶的平均積分例子: $avgScore = $Dao->avg('score'); 實際執(zhí)行的 SQL 為: SELECT AVG(score) AS tp_avg FROM user LIMIT 1 sum() sum() 統(tǒng)計某個字段數(shù)據(jù)之和。 統(tǒng)計積分排名前 10 名用戶的積分之和: $sumScore = $Dao->order('score DESC')->limit('10')->sum('score'); 實際執(zhí)行的 SQL 為: SELECT SUM(score) AS tp_sum FROM user ORDER BY score DESC LIMIT 10 所有的統(tǒng)計查詢?nèi)?select() 方法一樣。均支持連貫操作的使用,根據(jù)實際情況添加不同的查詢條件。
本文地址:http://www.gle-technology.com/others/14361.html