MySQL 統(tǒng)計(jì)查詢實(shí)現(xiàn)代碼
SELECT COUNT() FROM 語法用于從數(shù)據(jù)表中統(tǒng)計(jì)數(shù)據(jù)行數(shù)。
語法:
SELECT COUNT(column) FROM tb_name
該 SQL 語法用于統(tǒng)計(jì)某一字段的數(shù)據(jù)行數(shù),COUNT() 內(nèi)不能是多個字段,但可以是 * 號。
例子:
<?php
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
die("連接數(shù)據(jù)庫失敗:" . mysql_error());
}
mysql_select_db("test", $conn);
$sql = "SELECT COUNT(uid) FROM user";
$row = mysql_fetch_array( mysql_query($sql) );
echo "共有用戶: ",$row[0]," 位";
?>
瀏覽器顯示:
共有用戶: 4 位
說明
盡管 count() 中的參數(shù)可以是某個字段名,但如果只是想統(tǒng)計(jì)表中的數(shù)據(jù)記錄數(shù)目,從效率上考慮建議統(tǒng)計(jì)主鍵 count(id) 或直接使用 count(*) ,另外盡量避免使用列數(shù)據(jù)屬性為字符類的。
既然都看到這了就為大家分享兩個例子吧
Mysql查詢統(tǒng)計(jì)函數(shù)中的count
今天我遇到一個題目:統(tǒng)計(jì)所有女生成績大于90以上有總數(shù)
我剛開始就這樣寫:$sql = "select 女生成績 from use where 成績 > 90“;$result = mysql_query($sql);
$row = mysql_num_rows($result);echo "總數(shù)為:$row";
可是100條還行吧,如果是10000條那是不是要很慢啊?。『髞硪粋€朋友給我說用count函數(shù),這我才想起來。
把上面的sql語句改為:
$sql = "select count(*),女生成績 from use group by 女生成績 having 女生成績 > 90";
這樣查詢語句就快多了
單個select語句實(shí)現(xiàn)MySQL查詢統(tǒng)計(jì)次數(shù)
單個select語句實(shí)現(xiàn)MySQL查詢統(tǒng)計(jì)次數(shù)的方法用處在哪里呢?用處太多了,比如一個成績單,你要查詢及格得人數(shù)與不及格的人數(shù),怎么一次查詢出來?
MySQL查詢統(tǒng)計(jì)次數(shù)簡單的語句肯定是這樣了:
select a.name,count_neg,count_plus from
(select count(id) as count_plus,name from score2 where score >=60 group by name) a,
(select count(id) as count_neg,name from score2 where score <=60 group by name) b
where a.name=b.name
即必須至少用2個語句。
今天剛好碰到發(fā)現(xiàn)mysql支持if,那就創(chuàng)造性的用if來實(shí)現(xiàn)吧:
select name, sum(if(score>=60,1,0)),sum(if(score<60,1,0)) from score2 group by name
單個select語句實(shí)現(xiàn)MySQL查詢統(tǒng)計(jì)次數(shù)的方法簡單吧。
原理就是大于60,就賦值為1,那么sum就是計(jì)數(shù)了。
- MYSQL中有關(guān)SUM字段按條件統(tǒng)計(jì)使用IF函數(shù)(case)問題
- 如何使用MySQL查詢某個列中相同值的數(shù)量統(tǒng)計(jì)
- 利用MySQL統(tǒng)計(jì)一列中不同值的數(shù)量方法示例
- 單個select語句實(shí)現(xiàn)MySQL查詢統(tǒng)計(jì)次數(shù)
- MYSQL每隔10分鐘進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)方法
- MySQL中幾種數(shù)據(jù)統(tǒng)計(jì)查詢的基本使用教程
- mysql按照天統(tǒng)計(jì)報(bào)表當(dāng)天沒有數(shù)據(jù)填0的實(shí)現(xiàn)代碼
- MySQL按時間統(tǒng)計(jì)數(shù)據(jù)的方法總結(jié)
- mysql 獲取規(guī)定時間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù)
- MySQL統(tǒng)計(jì)函數(shù)GROUP_CONCAT使用陷阱分析
- mysql滑動訂單問題原理與解決方法實(shí)例分析
相關(guān)文章
mysql查詢結(jié)果實(shí)現(xiàn)多列拼接查詢
本文主要介紹了mysql查詢結(jié)果實(shí)現(xiàn)多列拼接查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04master and slave have equal MySQL server UUIDs 解決方法
使用rsync配置了大量mysql,省去了大量編譯和配置的時間,隨逐個修改master和slave服務(wù)器的my.cnf,后,發(fā)現(xiàn)數(shù)據(jù)不能同步2013-07-07mysql ndb集群備份數(shù)據(jù)庫和還原數(shù)據(jù)庫的方法
中午剛剛弄明白了MYSQL集群的備份與恢復(fù)。寫下來,以后就不用為這個問題浪費(fèi)時間了2011-12-12mysql報(bào)錯:Deadlock found when trying to get lock; try restarti
這篇文章主要給大家介紹了關(guān)于mysql出現(xiàn)報(bào)錯:Deadlock found when trying to get lock; try restarting transaction的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07