1. count 和 sum 的区别
count 是计算有多少条数据,count(*)计算的就是总共有多少条记录,count(col)的话就是计算有多少列col的值不为null;
sum 是计算某列的值的和,为null的值不计算;
sum和count 都可以作为select的字段;
如果不是要计算某个特定的col,count(*)的效率是最高的,因为数据库会自动为你找到最合适的计算方法
2. 筛选条件某个列的值不等于null
select * from a where x != null ❌
正确的应该是:select * from a where x is not null
3. count,sum 和 group by 的组合
select company_id, name, count(*) as driverSum , sum(num) from a
where certificate = 2
group by id;
count 计算的就是certificate=2的组别中的记录总数, sum 计算的就是certificate=2的组别中num的和
4. select的字段中也可以是公式的计算结果,比如 sum(x)/sum(y)