数据报表统计实现

目录

一:背景

二:实现过程


一:背景

最近需要开发一个数据统计的功能,主要是按照各种维度统计客户的数据,一般是按照日期来展示数量和变化情况。下面我们来梳理下实现的过程。

二:实现过程

1:梳理涉及统计的表

首先我们梳理涉及的统计表。我们可以根据需求来梳理,假定需求是以登录员工为例统计该员工下的客户信息,假如功能是员工持有的客户数量,员工持有的下单客户数量,员工持有的认证客户数量,员工持有的客户下单总金额等,这里涉及客户表和订单表

2:确定统计计算方法

我们已经确定涉及的表是客户表和订单表,要计算登录员工的客户信息和下单信息。可以确定我们需要输出持有客户数量,下单客户数量,认证客户数量,下单客户总金额

我们按照每个数量逐一计算:

客户数量:

select count(*) as total_num from customer where user_id=1

这里的客户数量,也可以根据员工名字或者时间进行搜索

select count(*) as total_num from customer where user_id=1 or user_name = '小' and create_time between '2024-05-06' and '2024-06-06'

下单客户数量:

select count(*)  as order_num from customer where user_id=1 and customer_id in (select distinct user_id from order);

认证客户数量:

select count(*) as total_num from customer where user_id=1 and status = 1;

下单客户总金额:

select sum(order_amount) as amount  from sorder where user_id in (select customer_id from customer where user_id=1 )

上面我们已经实现了每个数量的统计,那么如何合并四个数量到一个sql中呢,可以使用union all

SELECT
    sum(a.total_num) AS total_num,
    sum(a.order_num) AS order_num,
    sum(a.auth_num) AS auth_num,
    sum(a.amount) AS amount 
FROM
    (
    SELECT
        count(*) as total_num,
        0 as order_num,
        0 AS auth_num,
        0 AS amount 
    FROM
        shrimp_crm_customer_new 
    WHERE
        owner_user_id = 1 UNION ALL
    SELECT
        0 AS total_num,
        count(*) as order_num,
        0 AS auth_num,
        0 AS amount 
    FROM
        shrimp_crm_customer_new 
    WHERE
        owner_user_id = 1 
        AND customer_id IN ( SELECT DISTINCT uid FROM shrimp_shop_order )
    UNION ALL
    SELECT
        0 AS total_num,
        0 AS order_num,
        count(*) AS auth_num,
        0 AS amount 
    FROM
        shrimp_crm_customer_new 
    WHERE
        owner_user_id = 1 
        AND STATUS = 1 UNION ALL
    SELECT
        0 AS total_num,
        0 AS order_num,
        0 AS auth_num,
        sum(order_amount ) AS amount 
    FROM
        shrimp_shop_order 
    WHERE
    uid IN ( SELECT customer_id FROM shrimp_crm_customer_new   WHERE owner_user_id = 1 ) 
    ) a

这里我们合并四个值为一条记录,方便返回接口值

后续如果需要增加筛选,需要在每个子sql里增加条件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/684645.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

锻炼 精读笔记 01

元数据 [!abstract] 锻炼 书名: 锻炼作者: 丹尼尔利伯曼简介: 我们是为休息而生,还是为跑而生? 跑步会毁了你的膝盖吗? 哪种运动项目蕞适合我? 懒惰是不正常的行为吗? 每晚都需要睡够 8 个小时…

Python 引用数据类型

列表List 定义列表 可以将不同的基本数据类型或者列表装到一个列表里 my_list [1,2,3,4,5] print(my_list) # [1, 2, 3, 4, 5] 直接打印出列表的内容 print(type(my_list)) # <class list>my_list ["1","2","3","4","…

CV Method:超全学习率策略总结

文章目录 前言一、LambdaLR二、StepLR三、MultiStepLR四、ConstantLR五、LinearLR六、PolynomialLR七、ChainedScheduler八、ExponentialLR九、CosineAnnealingLR十、OneCycleLR十一、ReduceLROnPlateau十二、自定义学习率类函数总结 前言 在深度学习中&#xff0c;学习率对模…

数据分析工具|数据分析利器与业务决策的好帮手vividiem Desktop

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

如何修复d3dcompiler43.dll丢失问题,这三种方法可轻松解决

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“计算机缺失d3dcompiler43.dll”。这个问题可能会影响到计算机的正常运行&#xff0c;让我们无法正常使用某些软件或者游戏。那么&#xff0c;究竟什么是d3dcompiler43.dll&#xff1f;为什…

nginx: [error] invalid PID number ““ in “/run/nginx.pid“

两种问题&#xff0c;我自己碰到的情况 ./nginx -s reload执行命令后报错 nginx: [error] invalid PID number ““ in “/run/nginx.pid“ 第一种情况&#xff0c;pid被注释了 /usr/local/nginx/conf/nginx.conf #user nobody; worker_processes 1;// 可能是这里被注释了…

小海外仓也能用得起的大型海外仓系统:高性价比模式是关键

高效的仓储管理、订单处理效率、标准化财务管理&#xff0c;这些集成在海外仓系统的功能&#xff0c;在以往都是大型海外仓才投资得起的工具。 不过实际情况是&#xff0c;这些标准化的管理模式&#xff0c;恰恰是资金有限的小型海外仓最需要的。为了解决这个问题&#xff0c;…

基于JSP技术的社区生活超市管理系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;MyEclipse开发环境、Tomcat服务器 系统展示 首页 管理员功能模块…

“墨者杯”网络安全大赛wp

漏洞利用01 504错误修改为POST提交拿到php源码&#xff0c; 查看逻辑$_POST[roam1] ! $_POST[roam2] && sha1($_POST[roam1]) sha1($_POST[roam2]) 采用数组绕过 roam1[]1&roam2[]2 拿到phpinfo&#xff0c;观察发现 这里的意思是每个php页面都包含这个f14…

微信小程序实现图片预览功能

需求&#xff1a;点击图片实现放大预览 实现&#xff1a;调用微信官方给出的方法 wx.previewImage 注&#xff1a;urls 必须是数组 <image src"{{imgUrl}}" data-src"{{imgUrl}}" bindtap"previewImage" />data: {imgUrl:https://img.yz…

如何永久擦除Android手机中的所有个人数据?

在这个数字化的时代&#xff0c;确保您的个人数据的安全和隐私至关重要。如果您计划出售或回收您的Android手机&#xff0c;了解如何正确擦除Android手机是至关重要的。本综合指南将引导您通过安全擦除Android手机的分步过程&#xff0c;以保护您的敏感信息。 手机是极其敏感的…

怎么将图片里不需要的地方裁减掉?四种超好用的裁剪图片方法!

怎么将图片里不需要的地方裁减掉&#xff1f;在这个数字化时代&#xff0c;我们所处的世界变得更加多姿多彩&#xff0c;各种类型的图片不断涌现&#xff0c;从社交媒体上的自拍照到专业摄影师的作品&#xff0c;图片已经成为我们日常生活中不可或缺的一部分&#xff0c;然而&a…

Golang发送邮件如何验证身份?有哪些限制?

Golang发送邮件需要哪些库&#xff1f;怎么设置邮件发送的参数&#xff1f; 对于开发者而言&#xff0c;使用Golang发送邮件是一种常见需求。然而&#xff0c;在发送邮件的过程中&#xff0c;验证身份是一个至关重要的环节&#xff0c;它确保了邮件的可靠性和安全性。A将探讨G…

正则表达式运用

已经写了表达式&#xff0c;下一步就是匹配字符串得到结果 使用matcher的源码&#xff08;匹配&#xff09;普通方法&#xff0c;find&#xff08;寻找&#xff09;合适的代码&#xff0c;看字符串是否匹配成功 是否可以匹配上 匹配么&#xff0c;匹配就留下&#xff0c;fin…

WTLRC262-SG1模组LoRa与Wi-Fi技术助力智能化,启明云端乐鑫代理商

在物联网高速发展的今天&#xff0c;Wi-Fi 和LoRa作为近距离和远距离通信技术&#xff0c;均有其各自的典型应用场景&#xff0c;在各自应用领域都取得了卓越的成就。 Wi-Fi和LoRa技术各具优势&#xff0c;在很多场景需求中&#xff0c;如果将两者结合&#xff0c;一方面可以发…

六月可以闭眼入的宠物空气净化器:希喂、安德迈、霍尼韦尔真实PK

俗话说得好&#xff0c;猫咪一年到头都在掉毛&#xff0c;仿佛它们是四季常在的"蒲公英"&#xff0c;随时随地都在播撒毛发。猫毛不仅遍布它们自己的身体&#xff0c;还可能飘到你的床铺、沙发、衣物上……面对这样的状况&#xff0c;既要应对无处不在的猫毛&#xf…

【打印功能】js简单实现表格样式的数据打印,按样式打印出来

效果图 代码部分&#xff0c;简单三步 1&#xff0c;html部分&#xff1a;写一个表格&#xff0c;然后数据填进去 <div id"printable-area" v-show"false"><div><div style"text-align: center;height: 40px;line-height: 40px;font…

XENDOLL小型激光雕刻机能让你的产品更多选择

小型雕刻机是一种在小型尺寸范围内进行精细雕刻和切割的机械设备。它广泛应用于各种材料上的图案、文字、标识等雕刻工作&#xff0c;特别是在教学、工艺品制作、广告制作、模型制作等领域中发挥着重要作用。 激光雕刻机凭借其高精度、高效率和非接触式的加工特性&#xff0c;能…

electron自定义顶部

我的项目是采用的electron-vite搭建的,希望下面的内容可以给你带来帮助 自定义菜单栏Vue <template><div class"title-bar"><div class"left-section"><img src"../assets/icon.png" alt"Icon" class"icon…

电流继电器JL-31 柜内固定安装 约瑟JOSEF

JL系列电流继电器型号&#xff1a; 电流继电器JL-31 电流继电器JL-31C/1 电流继电器JL-31A 电流继电器JL-31/B 电流继电器JL-32BP 电流继电器JL-22 电流继电器JL-21 电流继电器JL-21B 电流继电器JL-23 电流继电器JL-11 电流继电器JL-11/2G 电流继电器JL-11C 电流继电器J…