mysql sum聚合函式和if 函授的聯合使用

2023-01-28 12:26:02 字數 769 閱讀 9400

今天去面試遇到一個資料庫試題,首先說一下表結構如下:

表結構:mytest

表資料:mytest

要查詢的結果如下:

在本題目中,需要用到sum聚合函式和if函式

sql如下:

select `date`,sum(if(ifwin="勝",1,0)) as 勝,sum(if(ifwin="負",1,0)) as 負 from mytest group

by `date`;

特別注意:sum函式試求和的,求出所有1的和,所以這裡用sum 而不是count函式。

當然,本查詢還可以使用其他方法:

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的過程中,增加一個虛...