SQL - 汇总与分组

ops/2024/9/24 3:25:53/
  • 聚合函数
    • MySQL自带一堆内置函数,其中一些叫聚合函数,用它们汇总数据,因为它们取某一列的值并聚合它们,导出一个单一值。并且聚合函数只会运行非空值,如果列中有的值是null,它不会被算在内。
    • max(), min(), avg(), sum(), count(),count(*) 返回表中的所有记录数,count(distinct client_id)具有去重功能,默认不去重
    • sql">select 'first half of 2019' as date_range,sum(invoice_total) as total_sales,sum(payment_total) as total_payment,sum(invoice_total-payment_total) as want
      from invoices
      where invoice_date between '2019-01-01' and '2019-06-30'	-- 控制范围,也就是筛选union
      select 'second half of 2019' as date_range,sum(invoice_total) as total_sales,sum(payment_total) as total_payment,sum(invoice_total-payment_total) as want
      from invoices
      where invoice_date between '2019-07-01' and '2019-12-31'union
      select 'total' as date_range,sum(invoice_total) as total_sales,sum(payment_total) as total_payment,sum(invoice_total-payment_total) as want
      from invoices
      where invoice_date between '2019-01-01' and '2019-12-31'

  • group by 子句
    • group by 子句在SQL查询中用于将结果集按一个或多个列进行分组。它的主要作用是将具有相同值的行归为一组,以便对每组数据进行聚合计算(如求和、计数、平均值等)
    • sql">-- group by 分组
      select date,name as payment_method,sum(amount) as total_payments
      from payments p
      join payment_methods pm on p.payment_method=pm.payment_method_id
      group by date,payment_method
      order by date

  • having 子句
    • 将结果集按一个或多个列分组后,再次筛选数据,但是筛选的列名必须是是在select中的
    • sql">-- having 再次筛选
      select date,name as payment_method,sum(amount) as total_payments
      from payments p
      join payment_methods pm on p.payment_method=pm.payment_method_id
      group by date,payment_method
      having total_payments>10
      order by date

  • rollup 运算符
    • 在分组后,每个组都有用聚合函数运算的值,对应的每个组的汇总和整个结果集的汇总可以使用到 with rollup,如group by client_id with rollup,不过这列名不能使用别名
    • sql">-- rollup运算符
      select 
      client_id,
      sum(invoice_total) as total_sales
      from invoices
      group by client_id with rollup


http://www.ppmy.cn/ops/96868.html

相关文章

keepalived讲解及练习

目录 1、keepalived介绍 1.1 keepalived简介 2、高可用集群 2.1 集群类型 2.2 系统可用性 2.3 系统故障 2.4 实现高可用 3、VRRP 3.1 VRRP:Virtual Router Redundancy Protocol 3.2 VRRP 相关术语 3.3 VRRP相关技术 4、 keepalived实验 4.1 全局配置 4…

如何去除抖音视频水印,还原视频的3种方法

抖音等短视频平台已经成为人们获取信息和娱乐的重要渠道。然而,视频上的水印往往会影响到观看体验,甚至在某些情况下限制了视频的分享和使用。本文将介绍三种去除抖音视频水印的方法,帮助用户还原视频的原始面貌。 工具一:奈斯水…

HAProxy的详解

一、介绍 1.1 定义 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前…

【网络 day1】

服务器可以循环接收客户端的数据;当客户端退出后, 服务器阻塞等待下一个客户端的连接,而后继续通信;当有客户端连接时, 服务器端 打印客户端的IP 和 Port信息;将代码的 send 和 recv 改为 write 和 read&am…

C2M商业模式分析与运营平台建设解决方案(三)

C2M(Customer to Manufacturer)商业模式通过直接将消费者需求与制造商对接,打破了传统生产与消费之间的壁垒,本文将探讨如何通过构建一个智能化运营平台,利用大数据分析、人工智能技术以及灵活的供应链管理&#xff0c…

【MySQL】5.0 入门学习(五)——MySQL源码了解及MySQL初始化设置

1.0 MySQL源码目录主要包括:客户端代码、服务端代码、测试工具、其他库文件。当然,看懂源代码得有一定的C语言基础。 image image.gif ​ BUILD:各种平台的编译脚本,可以用来制作各平台的二进制版本 client:客户端目录…

Spring Environment学习

一. 介绍 Environment 接口是 Spring 框架中的一个核心接口,它抽象了应用程序的环境配置,这个接口为应用程序提供了一个访问环境属性(如配置文件、系统属性、环境变量等)的通用方式; Environment 接口允许你通过键名…

汇编语言中的艺术:数据压缩与解压缩技术

标题:汇编语言中的艺术:数据压缩与解压缩技术 数据压缩是计算机科学中的一项基本技术,它通过减少数据的冗余来降低存储或传输所需的空间。在低级语言如汇编语言中实现数据压缩和解压缩,不仅是一种技术挑战,也是对硬件…