mysql 空值计算,相加,处理

假如统计每科的总分数,出现了空值怎么办
coalesce(sum(degreee),0),例子如下:
课程表

mysql> select * from t_course;
+-------+-----------------+-----+
| cno   | cname           | tno |
+-------+-----------------+-----+
| 3-105 | 计算机导论      | 825 |
| 3-245 | 操作系统        | 804 |
| 6-166 | 数据电路        | 856 |
| 9-888 | 高等数学        | 100 |
+-------+-----------------+-----+

成绩表

mysql> select * from t_score;
+-----+-------+--------+
| sno | cno   | degree |
+-----+-------+--------+
| 103 | 3-245 |     86 |
| 105 | 3-245 |     75 |
| 109 | 3-245 |     68 |
| 103 | 3-105 |     92 |
| 105 | 3-105 |     88 |
| 109 | 3-105 |     76 |
| 101 | 3-105 |     64 |
| 107 | 3-105 |     91 |
| 108 | 3-105 |     78 |
| 101 | 6-166 |     85 |
| 107 | 6-106 |     79 |
| 108 | 6-166 |     81 |
+-----+-------+--------+

统计每个学科的总分数

select cname,coalesce(sum(b.degree),0) from t_course a left join t_score b on a.cno=b.cno group by b.cno;
mysql> select cname,coalesce(sum(b.degree),0) from t_course a left join t_score b on a.cno=b.cno group by b.cno;
+-----------------+---------------------------+
| cname           | coalesce(sum(b.degree),0) |
+-----------------+---------------------------+
| 高等数学        |                         0 |
| 计算机导论      |                       489 |
| 操作系统        |                       229 |
| 数据电路        |                       166 |
+-----------------+---------------------------+
4 rows in set (0.06 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值