mysql sum join 多表统计求和时不正确的问题

Mysql leftjoin一对多关系导致sum数据翻倍 解决方案 使用 leftjoin 的时候会导致 t_01 的数据出现多次,再对 t_01 使用 sum 时,会有 sum 数据翻倍的情况。 阅读详情

但是我们发现,这个数据是错误的

于是我想到了用 distinct  但是发现用不了

于是又想到 group by

出来的结果是下面这样的


发现统计只是分组统计,没达到所有行统计,而且统计的数据不正确


于是我写了下面的语句来查看结果,加多了一个count函数查看

    SELECT s.oid,p.oid  AS poid,  SUM( priceCount) AS count_price, COUNT(p.oid) FROM mobile_shops_orders AS s
    LEFT JOIN mobile_shops_products AS p ON p.oid = s.oid
    WHERE s.userid =  '2'
    GROUP BY poid

 

出来的结果是下面的,一看就知道是什么原因了
 
oid     poid     count_price     COUNT(p.oid)
2015031809153611521     2015031809153611521     664.00     2
2015031809155386138     2015031809155386138     40.00     1

 

最后我们的语句应该是下面这个的,join 后面这个是重点,意思是返回不重复的数据

SELECT s.oid, p.oid AS poid, SUM(priceCount) AS count_price

FROM mobile_shops_orders AS s

LEFT JOIN  (select distinct  oid from  mobile_shops_products)   AS  p ON p.oid = s.oid WHERE s.userid =  '2’


oid     poid     count_price
2015031809153611521     2015031809153611521     372.00


这里有几个要注意的问题,一是,group by 是用于分组统计,如果要所有行统计不能用他

二需要使用子句先排除重复行,否则也会出得统计不正确的问题

还有,看网上说 返回 null 时sum等统计函数是不正确的

【LEFT JOIN 实战记录】统计查询-问题明细指标查询 【LEFT JOIN 实战记录】统计查询-问题明细指标查询 【LEFT JOIN 实战记录】统计查询-整改事项查询(多表联合查询+多次左连接字典表) 【LEFT JOIN 实战记录】统计查询-按主办处室区县查询纳入分析研判库 【LEFT JOIN 实战记录】是否纳入市级预算项目概览界面 【LEFT JOIN 入门级实践】项目表与组织表与人员表,其中人员存在上下级关系 【LEFT JOIN 阅读详情

相关推荐

2022-12-01 stonedb-多表leftJoin查询结果错误-记录

mysql列存储引擎-多表leftJoin查询结果错误-记录关联ISSUE: https://github.com/stoneatom/stonedb/issues/925

悟世之路 287

Mysql一对多关系leftjoin导致sum数据翻倍的解决方案

案例: 数据表: 群表(team)和 群标签关系表 (team_tag_relation) 关系:一个群对应多个标签 team表中有群人数字段,当leftjoin群标签关系表时,如果某个群拥有3个标签,则该群的数据会出现3次,导致进行sum(群人数)会sum多次,即群人数会翻3倍,造成数据错误。 解决方案: 避免直接将两个表进行leftjoin 先处理群标签关系表(team_tag_relation),将多条数据聚合为一条,sql如下: select team_id, GROUP_CONCAT(t

m0_47005349的博客 9786

RK3588内核崩溃日志捕获:pstore与ramoops的实战配置指南

本文详细介绍了在RK3588嵌入式设备上配置pstore与ramoops以捕获内核崩溃日志的实战指南。通过内核配置调整、设备树设置及高级调试技巧,帮助开发者有效定位系统崩溃原因,特别适合户外智能设备等无法长期连接调试器的场景。文章还提供了生产环境优化建议,确保日志捕获的可靠性与安全性。

weixin_29189363的博客 407

关于MySQL 关联查询求和sum出错问题

不多说,上代码 按照初始想法写sql查询 能查询出结果来 可一看结果不对呀! 那么排查问题。 去掉sum函数查询 如下 找到原因 有重复值 那么去除重复值就好.... 结果还是...... 查询结果还是没有去重,修改如下 结果正确 原来函数里面也可以使用去重。 点滴记录,点滴成长! ...

qq_39615345的博客 3009

Pixhawk+OpenMV实战:如何用Apriltag实现无人机自动降落(附避坑指南)

本文详细介绍了如何利用Pixhawk飞控和OpenMV摄像头,通过Apriltag视觉标签实现无人机的精准降落系统。从硬件搭建、参数配置到视觉处理代码优化,提供了完整的实战指南和避坑建议,帮助开发者快速实现厘米级精度的自动降落功能。

weixin_27076351的博客 481

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4390

mysql 左连接使用sum结果不对_MySQL:带有JOIN的SUM()返回不正确的值

试试这个查询:SELECT bl.user_id, SUM( ph.amount ) PAIDOUTFROM (SELECT distinct blocks.user_idFROM blocksWHERE confirms > 520) blLEFT JOIN payout_history phON bl.user_id = ph.user_idGROUP BY ph.user_id;—编...

weixin_36301989的博客 2544

【AGC】【serverless】【云函数】云函数常见问题

1、云函数添加了AUTH触发器后,在用户执行注册、销户、登录、登出动作时,云函数的event对象会自动触发返回相应信息。比如我在“层”的压缩包里放了config/config.txt,那么我在云函数里怎么调用这个文件?层的目录是:/dcache/layer,函数的目录是/dcache/layer/func。在云函数里往云数据库里插入数据返回的是180000,这是正常吗?已经按照文档在后台对应的云函数里配置了,所需的AUTH触发器。层的用法和放在函数里的用法是相同的。云函数里的层如何调用?

华为开发者联盟 839

mysql sum 重复计算_mysql join sum时数据重复问题及解决方案

当我们使用mysql的join功能从多张表中取出数据并使用sum分别对取出的数据求和时会发现sum出来的值是不对的,往往是正确值的整数倍为什么会出现这样的情况呢复现假设有两张表:user_buy 和user_sell,分别记录了用户在某天的购买和出售金额,结构如下:CREATE TABLE `user_buy` (`id` int(10) unsigned NOT NULL AUTO_INCREM...

weixin_35599225的博客 4061

SAP系统中PP模块全配置文档

配置路径IMG>SAP NetWeaver>常规设置>维护日历>工厂日历事务代码SCAL要求传输工厂代码描述日历代码日历描述起始日期星期一星期二星期三星期四星期五星期六星期日有效开始日期有效结束日期1000南微医学工厂MT南微医学工厂日历√√√√√√√201820502.4定义工厂配置路径IMG>生产>物料清单>常规数据>定义BOM状态事务代码OS23要求传输配置路径IMG>生产>主数据>资源>常规数据>标准值>定义参数。

yanzibing99的博客 1889

【AI编程】Trae 环境搭建与配置从使用到项目实战详解

Trae 环境搭建与配置从使用到项目实战详解

congge 5650

mysql多表关联统计

mysql多表关联统计子查询统计 需求: 统计每本书打赏金额,不同时间的充值数据统计,消费统计, 设计四个表,book 书本表,orders 订单表reward_log打赏表 consume_log 消费表 ,通过book_id与book表关联, 问题: 当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT_WS函数将多个字段其拼...

flysnownet的博客 1万+

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4779

【MySQL进阶学习】聚合函数与join多表查询

MySQL聚合函数与join多表查询

lolly1023的博客 6915

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 711

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

mysql进行sum多个表多个字段的时候数据很大的问题的解决以及6表联合复杂结构查询

首先要说明一点,这是一个非常复杂的数据结构,对于精通mysql的人来说,理解很好理解.但是可能还有更大的速度提升空间. 这种涉及到6个表的查询,使用一句话来完成,7000多商品,总数据量应该是十万级,200毫秒应该还是可以接受了.毕竟使用的rds性能也不是特别好. 而且多个表在一句话里面来进行查询的话,有助于练习mysql思维而且灵动性比较好.视图多是很方便写语句,但是效率有时候非常低. 本...

Afterwards_的专栏 5117

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

mysql对多表结果进行统计分析_mysql实现多表关联统计(子查询统计)示例

本文实例讲述了mysql实现多表关联统计的方法。分享给大家供大家参考,具体如下:需求:统计每本书打赏金额,不同时间的充值数据统计,消费统计,设计四个表,book 书本表,orders 订单表 reward_log打赏表 consume_log 消费表 ,通过book_id与book表关联,问题:当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT...

weixin_29887801的博客 3395

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

mysql求和 子查询_mysql实现多表关联统计(子查询统计)示例

本文实例讲述了mysql实现多表关联统计的方法。分享给大家供大家参考,具体如下:需求:统计每本书打赏金额,不同时间的充值数据统计,消费统计,设计四个表,book 书本表,orders 订单表 reward_log打赏表 consume_log 消费表 ,通过book_id与book表关联,问题:当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT...

weixin_36064575的博客 706

【MySQL多表查询必杀技】:从入门到精通,彻底掌握SQL JOIN核心逻辑

掌握SQL JOIN用法,轻松解决多表查询难题。详解INNER JOIN、LEFT JOIN等适用场景与核心逻辑,结合MySQL实战案例,助你高效关联数据、提升查询效率。多表操作必备技巧,值得收藏。

QuickDebug的博客 848

mysql横向合并两个表_mysql 查询两张表 横向合并实现类似full join

由于本人项目要求,统计一张表里用户已读、未读状态的总数,具体业务逻辑比较复杂,所以用简单两张表实现横向合并:A 表示信息未读数量统计: B 表示已读数量统计: 最终结果表: 现在要将A B表合并成一张表,由于本人比较懒,能用一个sql解决的,绝对不会用两个sql实现,具体分析情况如下:如下情况会导致数据丢失,因为要统计id有数据的SELECT * FROM A a LEFT JOIN B b ON...

weixin_33901995的博客 2355

tableau连接mysql进行多表查询_Tableau多表关联之后统计遇到的问题

其中两个表是通过员工ID来进行关联的,现在需要统计:各个部门的总月薪各个部门的总订单数各个部门总月薪数的产出:订单总额/月薪通过Tableau关联发现统计的总月薪数不对:问题分析我们看到表关联之后两个表之间是对应1对多的关系,关联之后,出现了笛卡尔积:mysql> SELECT employees.employee_id, employees.name, employees.salary,...

weixin_28811007的博客 1156

MySQL]多表关联查询技巧

示例表A: author_id author_name 1 Kimmy 2 Abel 3 Bill 4 Berton 示例表B: book_id author_id start_date end_date 9 1 2017-09-25 21:16:04 2017-09-25 21:16:06 10 ...

wyqwilliam的博客 590

MySQL多表联合查询

2. 交叉连接(CROSS JOIN) 2.1 笛卡尔积 交叉连接(CROSS JOIN):有两种,显式的和隐式的2种,一般用来返回连接表的笛卡尔积。 笛卡尔积(Cartesian product)是指两个集合 X 和 Y 的乘积。 A×B 和 B×A 的结果就叫做两个集合的笛卡尔积。两个集合相乘,不满足交换率,即 A×B≠B×A。A 集合和 B 集合的笛卡尔积是 A 集合的元素个数 × B 集合的元素个数。多表查询遵循的算法就是以上提到的笛卡尔积,表与表之间的连接可以看成是在做乘法运算 字段

mushuangpanny的博客 5737

掌握MySQL多表查询:从JOIN原理到实战优化全解析

在关系型数据库系统中,数据通常按照范式设计分散存储于多张表中,通过主键和外键建立关联。多表查询的核心原理在于连接(JOIN)操作,它允许我们将这些分散的数据表根据关联条件重新组合,从而提取出完整的业务信息。从技术价值看,多表查询是数据库查询能力的核心体现,直接决定了数据分析的深度和业务系统开发的效率。在应用场景上,无论是电商平台的订单用户关联分析、企业ERP系统的跨模块数据统计,还是商业智能中的多维报表生成,都离不开高效的多表查询。本文聚焦于**MySQL JOIN**的实战应用与**SQL性能优化**,深

weixin_30263277的博客 279

mysql一对多关系子查询_mysql实现多表关联统计(子查询统计)示例

本文实例讲述了mysql实现多表关联统计的方法。分享给大家供大家参考,具体如下:需求:统计每本书打赏金额,不同时间的充值数据统计,消费统计,设计四个表,book 书本表,orders 订单表 reward_log打赏表 consume_log 消费表 ,通过book_id与book表关联,问题:当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT...

weixin_32563411的博客 1726
上一篇: sql语句replace into用法
下一篇: python-install series of operating system
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值