十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
写一条sql语句就能解决了:
创新互联专注于南海企业网站建设,自适应网站建设,成都商城网站开发。南海网站建设公司,为南海等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
select sum(贷款总金额字段名) from tablename where 贷款部门字段='张西堡信用社';
2020-03-01
对于count的函数的使用,我们常见的一个错误是在括号内随意指定一个列去统计结果集的行数。但只有指定的行确实都是有值的时候,统计的才是实际的行数,否则可能统计的结果并不是实际的行数。而对于MyISAM存储引擎,如果某一列的值确实不可能为null时,MySQL内部就会将count()函数优化成count(*),若没有带where条件,此时计算速度是非常快的,因为此时没有实际的去计算表的行数。
总结: 对于MyISAM存储引擎,不带where条件的count(*)是非常快的。
技巧:
利用上述MyISAM的count(* )特性,加速一些特定查询条件的count()查询。
如:
对于select count(* ) from tablename where id 10; 可以做如下的反转查询:
select (select count(* ) from tablename) - count(* ) from tablename where id 10;
因为这样在查询阶段MySQL将子查询当做一个常数来处理,大大减少了扫描的行数。
selecti.uid,sum(ifnull(deposit,0)+ifnull(ddeposit,0)+ifnull(money,0))asallmoney
frompw_memberinfoileftjoinpw_membersmonm.uid=i.uidleftjoinpw_memberdatadoni.uid=d.uid
whereifnull(deposit,0)+ifnull(ddeposit,0)+ifnull(money,0)2000;
题主这个问题可以通过以idz和a这两个字段分组汇总获得。下面是具体的sql语句供参考:
select a,sum(b) as totalQty
from tblName where idz=10
group by idz,a;
注意idz如果不是数字则筛选10要对其加单引号
SELECT SUM(CASE `支付状态` WHEN 2 THEN `支付金额` ELSE 0 END)
,SUM(CASE `支付状态` WHEN 2 THEN 1 ELSE 0 END)
,SUM(CASE `支付状态` WHEN 1 THEN `支付金额` ELSE 0 END)
,SUM(CASE `支付状态` WHEN 1 THEN 1 ELSE 0 END)
FROM `订单`
这个SQL的结果是这个样子,4个数字表示成功金额、成功笔数、失败金额、失败笔数
123.45 11 2345.67 222
也可以用这样的简单SQL语句统计:
SELECT `支付状态`, COUNT(*), SUM(`支付金额`) FROM `订单`
结果为两行,分别是成功的笔数和金额、失败的比如和金额,例如是这样:
1 11 123.45
2 22 2345.67