Mysql查詢統計函數中的count
今天我遇到一個題目:統計所有女生成績大於90以上有總數
我剛開始就這樣寫:$sql = "select 女生成績 from use where 成績 > 90“;$result = mysql_query($sql);
$row = mysql_num_rows($result);echo "總數為:$row";
可是100條還行吧,如果是10000條那是不是要很慢啊!!後來一個朋友給我說用count函數,這我才想起來。
把上面的sql語句改為:
$sql = "select count(*),女生成績 from use group by 女生成績 having 女生成績 > 90";
這樣查詢語句就快多了
單個select語句實現MySQL查詢統計次數
單個select語句實現MySQL查詢統計次數的方法用處在哪裡呢?用處太多了,比如一個成績單,你要查詢及格得人數與不及格的人數,怎麼一次查詢出來?
MySQL查詢統計次數簡單的語句肯定是這樣了:
復制代碼 代碼如下:
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個語句。
今天剛好碰到發現mysql支持if,那就創造性的用if來實現吧:
復制代碼 代碼如下:
select name, sum(if(score>=60,1,0)),sum(if(score<60,1,0)) from score2 group by name
單個select語句實現MySQL查詢統計次數的方法簡單吧。
原理就是大於60,就賦值為1,那麼sum就是計數了。