今天去面試遇到一個資料庫試題,首先說一下表結構如下:
表結構:mytest
表資料:mytest
要查詢的結果如下:
在本題目中,需要用到sum聚合函式和if函式
sql如下:
select `date`,sum(if(ifwin="勝",1,0)) as 勝,sum(if(ifwin="負",1,0)) as 負 from mytest group特別注意:sum函式試求和的,求出所有1的和,所以這裡用sum 而不是count函式。by `date`;
當然,本查詢還可以使用其他方法:
select mt.`date`,(select本方法也可以查詢出資料。count(*) from mytest mt1 where mt1.ifwin="勝" and mt1.date=mt.date ) as男,(
select
count(*) from mytest mt1 where mt1.ifwin="勝" and mt1.date=mt.date ) as
女from mytest mt group
by mt.date;
mysql sum函式後面好多位小數點
在mysql中,如果你屬性是float double 或者string,現在要對這個列的資料進行累加操作,sum聚合函式的使用後,可能會在結果中出來很多的小數點,怎麼能讓進行精確累加呢?在mysql進行聚合的時候,把資料型別轉換為decimal,具體使用如下 select count id as t...
理解group by和聚合函式
先來看下錶1,表名為test 表1執行如下sql語句 1 2 selectnamefromtest groupbyname 你應該很容易知道執行的結果,沒錯,就是下表2 表2可是為了能夠更好的理解 group by 多個列 和 聚合函式 的應用,我建議在思考的過程中,由表1到表2的過程中,增加一個虛...
理解group by和聚合函式
先來看下錶1,表名為test 表1執行如下sql語句 1 2 selectnamefromtest groupbyname 你應該很容易知道執行的結果,沒錯,就是下表2 表2可是為了能夠更好的理解 group by 多個列 和 聚合函式 的應用,我建議在思考的過程中,由表1到表2的過程中,增加一個虛...