php实现报表的分组统计sql,PHP做后台数据报表设计简单的统计函数
相信我们在开发的过程中,最重要的点之一就是——代码的复用性,可读性。
本文主要讲的一个小点就是我们大家在后台开发中,通常会遇到一些数据的统计,多个报表的统计。
那么主要的思路就是把统计的代码块给独立出来,方便我们多个后端程序员在做不同表统计时,用到统一的统计代码设计思路,这样就不会乱了。
如果我们要在sql语句里面循环去统计汇总会增加数据库的负荷,所以我们换个方式,在查询出来的数据集之后,运用数组函数来统计
//以下为统计的方法代码啦,统一以 二维数组为例子
/**
* 此方法用来统计汇总
* @param $list 数据数组 //二维数组
*
*/
public function sum(array $list){
foreach ($list as $key => $value){
foreach ($value as $key => $vo){
//这里最主要是数组函数 array_sum 和 array_map 的配合使用
对于这两个函数不了解同学的需要去复习一下噢!
$Array['sum'][$key] = array_sum(array_map(function($val) use($key) {return $val[$key];}, $list));
}
}
return $Array;
}
我们调用它,要统计的数组为我们遍历出来的$list,比如是会员信息,我们需要把所有会员的一些付费数据给统计起来汇总。
Array
(
[0] => Array
(
[id] => 1
[name] => 小明
[mobile] => 13000000000
[price] => 0.02
[pay_num] => 2
[weixin_account] => 0.00
[left_cion] => 0
[acion] => 0
[give_coins] => 101
[use_integral] => 0
[give_integral] => 9724
[zengbi] => 0
[yubi] => 2
[integral] => 9724
[giftmachine] => 0
[money] => 0.02
[if_member] => 1
)
[1] => Array
(
[id] => 2
[name] => CC
[mobile] => 13000000000
[price] => 0.00
[pay_num] => 0
[weixin_account] => 0.00
[left_cion] => 0
[acion] => 0
[give_coins] => 100
[use_integral] => 0
[give_integral] => 7100
[zengbi] => 0
[yubi] => 0
[integral] => 7100
[giftmachine] => 0
[money] => 0.00
[if_member] => 1
)
)
//统计
$sum_data = $this->sum($list);
//得到
Array(
[sum] => Arra(
[id] => 15
[name] => 0
[mobile] => 61148026906
[price] => 0.02
[pay_num] => 2
[weixin_account] => 0.14
[left_cion] => 0
[acion] => 0
[give_coins] => 401
[use_integral] => 0
[give_integral] => 19924
[zengbi] => 0
[yubi] => 2
[integral] => 19924
[giftmachine] => 0
[money] => 0.02
[if_member] => 4
)
)
我们可以得到所有会员数据,每一项的综合,当然,示例并没有 把id,name等的不必要统计的数据给筛选掉,在实际的开发中,我们可以把数据集中,需要统计的数据组合成一个新的二维数组,再去统计这个新的数据数组。
其实最主要是想给刚入门PHP的朋友们表达一种思路,数据数组统计处理和sql语句优化,避免去循环sql语句统计,影响数据库的性能。
再者,统计是后台 报表中较为常见,且复用性极高的一个功能代码,所以我们的设计模式,一开始就要把这种类型的代码给独立出来,提高开发安全和代码准确性,统一性。
php实现报表的分组统计sql,PHP做后台数据报表设计简单的统计函数相关推荐
- php实现报表的分组统计sql,实现报表的分组统计,其操作区域是。
摘要: 实现下不工具电动情况那些能使用(手持.表明比(回炼,组统作区下在一总转定的化率,转化单程率高.其操主要的二催化次反应是裂化.... 实现下不工具电动情况那些能使用(手持. 下列选项中,报表比阐 ...
- python excel 分组统计一个时间段内的数据,如三个月内,但不限于某个时间起止,是任何三个月的长度内
""" 分组统计一个时间段内的数据,如三个月内,但不限于某个时间起止,是任何三个月的长度内 """import pandas as pd i ...
- MySQL连表分组统计使用count查询出数据不准确问题解决方案
先上两副图 这里有两张表:score表和year_as表,要求统计出score表按年份分组的个数,且查询出来的内容需要包括year_as表中的year_as字段. 使用正常连表并分组统计count得出 ...
- c#水晶报表连接mysql_C# 用vs2008连接SQL数据库做动态水晶报表
博主是个还在上大学的新手,如果有什么说错的地方请务必帮我指出来,谢谢! 想要完成一个能够动态改变其中数据的水晶报表,可以通过创建一个 数据的中转站来存储和输出数据的方式. 借由这个中转站,我们可以通过 ...
- python分组统计_python数据分析8:数据分组统计
1.根据给定的条件将数据拆分成组 2.每个组都可以独立应用函数(如求和,求平均值) 3.将结果合并到一个数据结构中 DataFrame.groupby(by=None,axis=0,level=Non ...
- 这个报表工具绝了!能做GIS数据地图,还能集成R语言!
我们知道报表工具就像是加强版的Excel,主要用途就是制作各种报表.但有一个报表工具,不仅本身很强大,能高效率无重复的制作各种报表,还拥有丰富的可视化,能做数据分析. 最近更是新出了几款插件,能在线预 ...
- oracle复杂分组查询语句,oracle中的“复杂”分组统计sql
要求: 呼叫系统(Call Center)每天会有大量的电话进线数据,领导们要查看每天的进线数汇总,并且要求把 每天从上午8点到上午12点以及下午2点到晚上8点这两个时间段的数据汇总 "视& ...
- mysql按天,小时,半小时,N分钟,分钟进行数据分组统计
mysql按天,小时,半小时,N分钟,分钟进行数据分组统计 mysql不同时间粒度下的分组统计 按天统计 按小时统计 按半小时统计 按N分钟统计 按分钟统计 mysql不同时间粒度下的分组统计 我们在 ...
- Excel 分组统计不重复项
Excel 分组统计不重复项 通过数据透视表,详见链接 链接: link.
最新文章
- 为什么开发者应该摒弃敏捷?(转)
- 互联网日报 | 2月23日 星期二 | 华为发布新一代折叠旗舰Mate X2;字节跳动游戏官网正式上线;携程设立轮值制度...
- python xlrd模块
- UI设计干货模板素材|数据可视化UX套件
- Testing - Codereview Checklist
- activeMQ的基本使用
- css如何调用函数,从CSS调用JavaScript函数
- MD文档编写利器《Typora》
- Win8怎么在桌面显示我的电脑
- android 页面跳转代码
- Powertoys windows 10第三方桌面分块(分区)工具
- 注册99美元苹果开发帐号
- 普通二本毕业八年,京东就职两年、百度三年,分享大厂心得
- 《计算机网络教程》(微课版 第五版)第三章 数据链路层 课后习题及答案
- layer.open(常用)
- 关于“为什么delete以后指针还能被赋值”一种描述
- bootstrap登录模板
- TI vs Nordic BLE 产品市场分析
- 【电脑配置知识】显卡 GPU
- 微信公众号图灵机器人开发php,使用图灵机器人api搭建微信聊天机器人php实现,图灵微信聊天机器人...