1、当我们要统计数据表数量时,如果遇到多表查询,会出现一个主表对应多个子表的维度,我们会用到group by,但是不要再用统计函数去操作数据,因为统计还是会统计原数据

案例

SELECT

sum(`order`.goods_amount) AS total_goods_amount,

sum(`order`.order_amount) AS total_order_amount,

sum(`order`.redbag_amount) AS total_redbag_amount,

sum(`order`.spread_amount) AS total_spread_amount,

sum(`order`.redrain_amount) AS total_redrain_amount

FROM

ds_order AS `order`

LEFT JOIN ds_refundreturn AS refundreturn ON `order`.order_id = refundreturn.order_id

WHERE

1 = 1

AND `order`.order_state = '40'

AND refundreturn.refund_state < '3'

AND refundreturn.is_revoke = '0'

GROUP BY

`order`.order_id

这样得到的数据,会把子表多个订单ID给统计上去,而分组并没有限制到

2、可以用数据库子查询,最后再加一个总查询

select sum(a.total_goods_marketprice) from (

SELECT

(

goods.goods_marketprice * ordergoods.goods_num

) AS total_goods_marketprice

FROM

ds_order AS `order`

LEFT JOIN ds_refundreturn AS refundreturn ON `order`.order_id = refundreturn.order_id

LEFT JOIN ds_ordergoods AS ordergoods ON `order`.order_id = ordergoods.order_id

LEFT JOIN ds_goods AS goods ON ordergoods.goods_id = goods.goods_id

WHERE

1 = 1

AND `order`.order_state = '40'

AND refundreturn.refund_state < '3'

AND refundreturn.is_revoke = '0'

GROUP BY

`order`.order_id

)a;

3、mysql group concat 长度是有限制的,如果数据太多,会截取

4、如果在不同电脑查询值,排序值得到的数据是相同的,有可能会显示不同顺序的数据

5、mysql看or与in的条件是一样的,但是数量大的时候,or会影响性能

亲,后面还会陆续更新!

mysql操作遇到的坑(第一版)的更多相关文章

  1. mysql操作遇到的坑(第二版)

    1.通过条件查询出上一条与下一条 sql说明:本表关联本表,然后通过其中一个表,查询出对应的条件,再用另外一个表求出上一条与下一条的数据,求出来的数据是多条的 SELECT ua.id, ua.wx_ ...

  2. 被mysql中的wait_timeout坑了

    今天被mysql里的wait_timeout坑了         网上能搜到很多关于mysql中的wait_timeout相关的文章,但是大多数只是说明了他的作用,而且都说这个参数要配合那个inter ...

  3. 【踩坑记录】记一次MySQL主从复制延迟的坑

    最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...

  4. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  5. MySQL字符集的一个坑

    MySQL字符集的一个坑 http://imysql.com/2013/10/29/misunderstand-about-charset-handshake.shtml MySQL字符集的一个坑 1 ...

  6. SparkR链接mysql数据库(踩坑)

    本文主要讲述sparkR链接Mysql的过程和坑. SparkR的开发可以用RStudio工具进行开发,连接spark可以通过RStudio界面中的Connections进行配置连接;具体方法这里不做 ...

  7. Linux下部署MySQL,大小写敏感踩坑记录

    今天在将开发环境中的门户数据库复制到新环境后,使用SqlSugar的ORM框架进行数据库操作的时候,出现了主键找不到的现象.排查了很久终于发现了关键点.特此记录. 1.开发环境:    操作系统:CE ...

  8. Mysql操作初级

    Mysql操作初级 本节内容 数据库概述 数据库安装 数据库操作 数据表操作 表内容操作 1.数据库概述 数据库管理系统叫做DBMS 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建 ...

  9. python学习道路(day12note)(mysql操作,python链接mysql,redis)

    1,针对mysql操作 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 设置密码 update user set password ...

随机推荐

  1. yield 实现range()函数

    def range(*args,step= 1): args = list(args) if len(args) == 2: yield args[0] while args[0]<args[1 ...

  2. lightoj 1086 - Jogging Trails(状压dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1086 题解:题目就是求欧拉回路然后怎么判断有欧拉回路只要所有点的度数为偶数.那 ...

  3. 牛客网暑期ACM多校训练营(第四场) G Maximum Mode 思维

    链接:https://www.nowcoder.com/acm/contest/142/G来源:牛客网 The mode of an integer sequence is the value tha ...

  4. 矩阵快速幂 hud 1575 Tr A 模板 *

    Tr A Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. c语言实现字符指针(字符串)数组的排序

    需求: "ff555d", "114ddd", "114dd","aaa", "aaab", &qu ...

  6. springboot应用监控和管理

    spring boot应用监控和管理 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控 ...

  7. Nginx实现高可用(了解)

    使用nginx实现反向代理和负载均衡时,nginx就是整个网站的入口了,所以需要保证nginx的高可用 主要资料包:链接:https://pan.baidu.com/s/1z_-xEM3uUICtZi ...

  8. Linux下编译提示arm-none-linux-gnueabi-gcc: command not found

    自己的Linux系统中已经正确安装了交叉编译器arm-2009q3,路径设置正常. 但是在使用arm-none-linux-gnueabi-gcc编译时提示  arm-none-linux-gnuea ...

  9. docker java环境 直接做成镜像 跑自己的java包

    yum install docker #基于阿里源 可以直接下载 systemctl restart docker ifconfig  #出现 docker0  说明环境部署成功 docker ver ...

  10. PB级数据实现秒级查询ES的安装

    什么是ES?ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的, ...