mysql sum聚合函数和if()函授的联合使用

时间:2022-05-13 20:15:21

今天去面试遇到一个数据库试题,首先说一下表结构如下:

表结构:mytest

mysql sum聚合函数和if()函授的联合使用

表数据:mytest

mysql sum聚合函数和if()函授的联合使用

要查询的结果如下:

mysql sum聚合函数和if()函授的联合使用

在本题目中,需要用到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;

本方法也可以查询出数据。