mysql基础8——聚合函数

求和函数 sum()  返回指定字段值的和

获取某个门店每天每种商品的销售总计情况

select left(b.transdate,10).c.goodsname,sum(a.quantity),sum(a.salesvalue)
from demo.transactiondetails as a
join demo.transactionhead as b on (a.transactionid=b.transactionid)
join demo.goodsmaster as c as (b.itemnumber=c.itemunmber)
group by left(b.transdate,10),c.goodsname
order by left(b.transdate,10),c.goodsname;

left(str,n) 返回字符串str最左边的n个字符

获取全部商品的销售总计数量和总计金额 把数据集整体看作一个分组计算

select sum(quantity),sum(salesvalue) from demo.transactiondetails;

平均函数avg() 返回指定字段的平均值

计算每天,每种商品平均一次卖出多少个,多少钱

select left(b.transdate,10).c.goodsname,avg(a.quantity),avg(a.salesvalue)
from demo.transactiondetails as a
join demo.transactionhead as b on (a.transactionid=b.transactionid)
join demo.goodsmaster as c as (b.itemnumber=c.itemunmber)
group by left(b.transdate,10),c.goodsname
order by left(b.transdate,10),c.goodsname;

最大值函数max() 返回指定字段在分组中的最大值

计算每天的一次销售的最大数量和最大金额

select left(b.transdate,10).c.goodsname,max(a.quantity),max(a.salesvalue)
from demo.transactiondetails as a
join demo.transactionhead as b on (a.transactionid=b.transactionid)
join demo.goodsmaster as c as (b.itemnumber=c.itemunmber)
group by left(b.transdate,10),c.goodsname
order by left(b.transdate,10),c.goodsname;

注意!!!max(a.quantity)和max(a.salesvalue)不一定是同一条记录的数据 它们是分别计算的

最小值函数min() 返回指定字段在分组中的最小值

计数函数count()

数据很多并且在查询的时候经常卡顿的现象  使用分页策略解决

分页策略:不把查询结果一次性全部返回给客户端 根据用户电脑屏幕的大小,计算一屏可以显示的记录数,每次只返回用户电脑屏幕可以显示的数据集 然后通过翻页,跳转等功能按钮实现查询目标的精准锁定。

分页策略的关键:计算出符合条件的记录一共有多少条

计算记录数使用count()函数

count(字段)   统计有多少个不为空的字段值

select count(goodsname) from demo.goodmaster;

count(*)   统计一共有多少条记录

count(*)与group by一起使用表示统计分组内有多少条数据

count(*)可以单独使用 统计全部数据集的记录数

计算每天每种商品都有几次销售,需要按天按商品名称进行分组查询

select left(a.transdate,10),c.goodsname,count(*)
from demo.transactionhead as a
join demo.transactiondetails as b on (a.transactionid=b.transactionid)
join demo.goodmaster as c on (b.itemnumber=c.itemnumber)
group by left(a.transdate,10),c.goodsname
order by left(a.transdate,10),c.goodsname;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA学习笔记29(集合)

1.集合 ​ *集合分为:单列集合、双列集合 ​ *Collection 接口有两个重要子接口 List Set,实现子类为单列集合 ​ *Map接口实现子类为双列集合,存放的King–Value ​ *集合体系图 1.1 Collection接口 1.接口实现类特点 1.collection实现…

PL_to_PS中断传输数据

PL_to_PS中断传输数据 实验功能:将PL端的数据存入BRAM,然后在PS端读出数据,用串口打印。通过中断来触发 参考文章: https://www.cnblogs.com/fhyfhy/p/11760986.html [ZYNQ_PS与PL通过BRAM交互(三:PSPL读…

JAVA每日经典面试题

Java 高级面试问题及答案 问题1: 在Java中,什么是强引用、软引用、弱引用和虚引用?它们之间有什么区别? 答案: 在Java中,引用分为四种类型: 强引用:如果对象具有强引用,那么它永远不会被垃圾…

用Python设计一个计算器

Python代码 import tkinter as tk# 定义按钮点击事件处理函数,用于将按钮对应的数字或运算符添加到当前表达式中 def button_click(number):current = entry.get() # 获取当前文本框中的内容entry.delete(0, tk.END) # 清空文本框

MyBatis 框架学习(II)

MyBatis 框架学习(II) 文章目录 MyBatis 框架学习(II)1. 介绍2. 准备&测试2.1 配置数据库连接字符串和MyBatis2.2 编写持久层代码 3. MyBatis XML基础操作3.1 Insert 操作3.2 Delete 操作3.3 Update 操作3.4 Select 操作 4. #{} 与 ${}的使用5. 动态SQL操作5.1 < if >…

去除图像周围的0像素,调整大小

在做分割任务时&#xff0c;经常需要处理图像&#xff0c;如果图像周围有一圈0像素&#xff0c;需要去除掉&#xff0c;重新调整大小 数组的处理 如果图像的最外一圈为0&#xff0c;我们将图像最外圈的图像0去除掉。 import numpy as npdef remove_outer_zeros(arr):# 获取数…

纠正对CAN的错误认识

STM32CUBEMX系列——CAN通讯的配置_stm32cubemx 配置103 can-CSDN博客 STM32之CAN通信_stm32 can通信-CSDN博客 在回环模式下&#xff0c;发送的数据帧会在控制器内部被立即接收&#xff0c;而不会通过总线传播到其他节点。这种模式可以确保在没有其他节点干扰的情况下&#…

AI边缘计算盒子+ThingSense管理平台,推动明厨亮灶智慧监管新篇章

背景随着“互联网”时代的浪潮汹涌而至&#xff0c;国家及各地政府纷纷在“十四五”规划中明确指出&#xff0c;强化食品安全管理&#xff0c;利用技术手段实现智慧监管是刻不容缓的任务。为此&#xff0c;各地正加速推进“互联网明厨亮灶”的建设步伐&#xff0c;实现系统对接…

C# 使用 ThoughtWorks.QRCode 生成二维码

目录 关于 ThoughtWorks.QRCode 开发运行环境 方法设计 代码实现 调用示例 Logo图标透明化 小结 关于 ThoughtWorks.QRCode 二维码是用某种特定的几何图形按一定规律在平面分布的、黑白相间的、记录数据符号信息的图形&#xff0c;在应用程序开发中也被广泛使用&#x…

vue+node使用RSA非对称加密,实现登录接口加密密码

背景 登录接口&#xff0c;密码这种重要信息不可以用明文传输&#xff0c;必须加密处理。 这里就可以使用RSA非对称加密&#xff0c;后端生成公钥和私钥。 公钥&#xff1a;给前端&#xff0c;公钥可以暴露出来&#xff0c;没有影响&#xff0c;因为公钥加密的数据只有私钥才…

不同分辨率下搜狗输入法输入图标过大

现象 笔记本是2k屏外接1080p显示器&#xff0c;分辨率不同导致搜狗输入法在笔记本显示器上显示正常&#xff0c;而在1080p显示器下图标很大过大&#xff0c;一打字就显得很尴尬。 解决 找到以上三个可执行文件&#xff0c;分别右键打开属性-->兼容性-->更改高DPI设置 按…

安装nvm管理node版本

准备工作 卸载电脑上原有的nodejs&#xff0c;卸载后确保相关的文件夹也删除掉&#xff0c;否则会在nvm安装成功后管理node版本时造成冲突&#xff0c;例如执行nvm use 20.5.0时报exit status 145的错误。原本就没有安装过node的不用管 一、nvm的安装及使用 1、下载nvm&…

二叉树的遍历(递归与非递归)

二叉树结构&#xff1a; public static class TreeNode{public int val;public TreeNode left;public TreeNode right;public TreeNode(int val) {this.val val;}}先序递归遍历&#xff1a; public static void preOrder(TreeNode root){if (root null){return;}System.out…

mysql 删除数据的四种方法

在MySQL数据库中,删除数据是一个常见的操作,它允许从表中移除不再需要的数据,本文就来介绍一下四种方法,具有一定的参考价值,感兴趣的可以了解一下 − 目录 写在前面 方法介绍1. DELETE语句 示例&#xff1a; 2. DROP TABLE语句&#xff1a; 3. TRUNCATE TABLE 示例&#x…

SS-Net复现

表1 8 labeled 样本复现结果–Dice&#xff1a;88.540501&#xff0c;Jaccard&#xff1a;79.60452&#xff0c;95HD&#xff1a;7.58588897&#xff0c;误差在可接受范围内 表2 7 labeled 样本复现结果–Dice&#xff1a;86.778431&#xff0c;Jaccard&#xff1a;77.665895&…

Vim是一款功能强大的文本编辑器

简介&#xff1a; Vim是一款功能强大的文本编辑器&#xff0c;广泛用于Linux系统。以下是Vim编辑器的基本使用方法&#xff1a; 打开文件&#xff1a; 使用vim命令加上要编辑的文件名&#xff0c;例如&#xff1a;vim filename。 进入编辑模式&#xff1a; 在Vim中&#xff0c…

算法思想总结:栈

一、栈的经典应用&#xff1a;波兰表达式与逆波兰表达式 我们平时看到的 12*&#xff08;3-4*5&#xff09;6/7 叫做中缀表达式&#xff0c;平时我们习惯用这个计算的原因是我们可以整体地去看到这个表达式并且清楚地知道各个运算符的优先级&#xff0c;但是计算机并不一定知道…

微信小程序四(全局配置和页面配置页面跳转)

全局配置&#xff1a; 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置&#xff0c;决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等 tabBar设置&#xff1a;最少两个最多5个 "tabBar": {"list":[{"pagePath": &qu…

“饕餮之路:贪吃蛇编程精粹“

目录 前言 1.写代码前的预准备 1.1修改控制台 1.2相关WinAPI32知识学习 1.2.1WinAPI32介绍 1.2.2 mode 命令 1.2.3 title 命令 1.2.4COORD 1.2.5GetStdHandle 1.2.6对控制台光标进行设置 1.2.6.1GetConsolrCursorInfo 1.2.6.2 CONSOLE_CURSOR_INFO 1.2.6.3SetConsol…

docker安装mysql,允许远程连接

Docker 安装MySQL sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORDroot123 -p 3306:3306 -d mysql:5.7.44允许远程连接到 MySQL 服务器&#xff0c;需按以下步骤操作&#xff1a; 进入 MySQL 容器&#xff1a; sudo docker exec -it some-mysql /bin/bash登录 My…