使用 GROUP BY 进行数据库分析:以图书销售数据库为例

让我们通过一个简单但实用的例子来理解 GROUP BY 的使用。我们将以一个图书销售数据库为例。这个数据库包含两张表:一张是图书信息表 (books),另一张是销售记录表 (sales)。我们会先创建这两张表,然后插入一些数据,并展示如何使用 GROUP BY 来分析销售数据。

文章目录

    • 背景信息
    • 建表和插入数据
    • 使用 GROUP BY
      • 计算每本书的总销售量:
      • 计算每位作者的书籍总销售额:
      • 查找每本书的最大单次销售量:
    • 结论

背景信息

在数据库管理和数据分析中,GROUP BY 语句是一个强大的工具,它可以让我们根据某些列的值对数据进行分组。这对于汇总信息、生成报告或进行市场分析等任务至关重要。在本例中,我们将展示如何利用 GROUP BY 来插入、更新和分析图书销售数据。

建表和插入数据

我们的数据库设计涉及两张主要表格:图书信息表 (books) 和销售记录表 (sales)。以下是这两张表的结构和示例数据

图书信息表 (books):

  • book_id (图书ID)
  • title (图书标题)
  • author (作者)

销售记录表 (sales):

  • sale_id (销售ID)
  • book_id (图书ID)
  • sale_date (销售日期)
  • quantity (数量)
  • price (价格)

sql如下:

-- 创建书籍表
CREATE TABLE test.books (
    book_id INT PRIMARY KEY,
    title VARCHAR(100),
    author VARCHAR(100)
);
-- 创建销售表
CREATE TABLE test.sales (
    sale_id INT PRIMARY KEY,
    book_id INT,
    sale_date DATE,
    quantity INT,
    price DECIMAL(10, 2),
    FOREIGN KEY (book_id) REFERENCES books(book_id)
);

-- 插入数据
INSERT INTO test.books (book_id, title, author) VALUES
(1, 'Data Science 101', 'Alex Johnson'),
(2, 'SQL Essentials', 'Maria Lee'),
(3, 'Advanced Analytics', 'An Nguyen');


INSERT INTO test.sales (sale_id, book_id, sale_date, quantity, price) VALUES
(1, 1, '2023-06-01', 10, 29.99),
(2, 2, '2023-06-02', 5, 59.99),
(3, 3, '2023-06-03', 2, 89.99),
(4, 1, '2023-06-04', 3, 29.99),
(5, 2, '2023-06-05', 7, 59.99);

使用 GROUP BY

GROUP BY 语句允许我们按照一个或多个列来聚集数据,这对于理解数据模式非常有用。在此示例中,我们将展示如何用它来计算每本书的总销售量、每位作者的书籍总销售额以及每本书的最大单次销售量。

计算每本书的总销售量:

SELECT b.title, SUM(s.quantity) as total_quantity
FROM sales s
JOIN books b ON s.book_id = b.book_id
GROUP BY b.title;

如下:
在这里插入图片描述

计算每位作者的书籍总销售额:

select b.author,sum(s.price * s.quantity) as total
FROM test.books  b
join test.sales s  on b.book_id = s.book_id
group by b.author;

如下:
在这里插入图片描述

查找每本书的最大单次销售量:

SELECT b.title, MAX(s.quantity) as max_quantity
FROM test.sales s
JOIN test.books b ON s.book_id = b.book_id
GROUP BY b.title;

如下:
在这里插入图片描述

结论

通过上述例子,我们可以看到 GROUP BY 在数据库查询中的实用性和灵活性。无论是简单的数据汇总还是复杂的数据分析,GROUP BY 都是一个不可或缺的工具。理解并掌握它的使用,对于任何涉及数据库管理和数据分析的工作都是极其重要的。

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

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

相关文章

算法:常见的哈希表算法

文章目录 两数之和判断是否互为字符重排存在重复元素存在重复元素字母异位词分组 本文总结的是关于哈希表常见的算法 哈希表其实就是一个存储数据的容器,所以其实它本身的算法难度并不高,只是利用哈希表可以对于一些场景进行优化 两数之和 class Solut…

openEuler学习05-ssh升级到openssh-9.5p1

openEuler的版本是openEuler 20.03,ssh的版本是OpenSSH_8.2p1 [roottest ~]# more /etc/os-release NAME"openEuler" VERSION"20.03 (LTS-SP3)" ID"openEuler" VERSION_ID"20.03" PRETTY_NAME"openEuler 20.03 (LTS-…

单例模式---饿汉式、懒汉式

一、什么是单例模式 单例模式,指的是一个类中的对象只能有一个,它在内存中只会创建一次对象的设计模式。 二、饿汉式 public class SingleTon {// 私有的构造方法private SingleTon() {};// 1. 饿汉式private static SingleTon instance new SingleTon…

UE Websocket笔记

参考链接 [UE4 C入门到进阶]12.Websocket网络通信 - 哔哩哔哩 包含怎么用Nodejs 写测试服务器 UE4_使用WebSocket和Json(上) - 知乎 包含Python写测试服务器 UE4_使用WebSocket和Json(下) - 知乎 示例代码 xxx.Build.cs"W…

思伟老友记 | 晋江市尚亿建材实业有限公司携手思伟软件16年

晋江市尚亿建材实业有限公司 晋江市尚亿建材实业有限公司成立于2006年,建有两个混凝土搅拌站,是晋江市成立时间最长的搅拌站之一。目前拥有25部搅拌车,5部泵送车,3部装载机,混凝土年产量超过50万m。 思伟软件与尚亿公…

土壤水分测量仪QY-800S多层一体化监测土壤墒情

产品概述: 土壤水分测量仪又名非接触式土壤水分测量仪、土壤墒情测量仪,是一款以介电常数检测原理为基础的传感器。能够针对不同土层的土壤水分含量进行动态观测,而且是进行快速、准确、全面地观测,让人们实现对土壤的高度感知。 …

freeswitch编译mod_av支持webrtc MCU通话

系统环境 一、FS相关网站 二、第三方库安装 1.apt安装 2.指定版本sofia-sip安装 3.指定版本spandsp安装 4.指定版本libks安装 5.指定版本openssl安装 三、指定版本FS安装 1.CPPFLAGS配置 2.编译器版本 3.FS配置编译 四、FS,fs_cli运行,模块加载 附录 1.安…

软考2018下午第六题改编逻辑(状态模式)

在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象 package org.example.状态模式.软考航空;/*** author lst* date 2023年12月07日 15:37*/ class FrequentFlyer {CState state;double flyMiles;public FrequentFlyer() {…

官方版小白重装系统之制作装机U盘篇

一、前言 很多人会安装电脑的操作系统,也有很多人不会安装,甚至还要花时间花金钱找人安装。 网上重装系统的网站很多,安装系统的工具软件也很多,其中不乏捆绑有病毒木马、广告间谍的,很多人深受其害,那为什…

Navicat Premium 16 for Mac/Windows:高效的数据库开发工具

Navicat Premium 16是一款功能强大的数据库开发工具,为开发人员提供了全面的工具和功能,帮助他们更高效地进行数据库开发和管理。不论是初学者还是专业开发人员,Navicat Premium 16都能满足他们的需求,并提供直观、易用的界面。 …

智汇恒星科技|控乐屋.全宅智能冠军代言来啦, 智慧家居千亿蓝海

随着5G、大数据、云计算、物联网等技术的发展,智能化正覆盖人们生活的方方面面,全屋智能的出现为“一键式”智能家居生活享受提供无限可能。近年来智能家居行业总体规模增长迅速,数据显示,2022年中国智能家居行业市场规模约为6200…

应用架构——集群、分布式、微服务的概念及异同

一、什么是集群? 集群是指将多台服务器集中在一起, 每台服务器都实现相同的业务,做相同的事;但是每台服务器并不是缺 一不可,存在的主要作用是缓解并发能力和单点故障转移问题。 集群主要具有以下特征: …

粤能环保亮相迪拜COP28,智能技术铸就运河城市可持续未来

在全球应对气候变化的重要会议——迪拜COP28大会上,运河城市面临的独特环境挑战引起了广泛关注。随着城市化进程的加快,运河城市在处理固体废物、减少温室气体排放以及维持水资源安全方面面临着严峻考验。智能垃圾分类作为应对这些挑战的有效途径&#x…

基于SSM框架的仓库管理系统

基于SSM框架的仓库管理系统 文章目录 基于SSM框架的仓库管理系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 现代商业环境中,仓库管理对于企业的运营效率和客户满意度至关重要。传统的手工管理方式已经无法满足日益复杂的仓储需求。…

应用APP开发程序编辑中的数据加密和解密以及签名使用解释技巧

我们知道在现代互联网应用中,数据的安全性至关重要。加密、解密和签名算法是保护用户隐私和数据完整性的基石。本文将为您介绍一些程序员必须知道的加密、解密和签名算法,帮助您在应用开发中确保数据的安全性。 图片来源:应用APP开发程序编辑…

C语言入门课程之课后习题之折半查找法

目录 1解题思路: 2代码所示: 3运行代码: 4习题不难,多刷题,练思路,最重要的不是学会了一道题,而是掌握其编程思想; 1解题思路: 折半查找法(half-interval…

2024年强烈推荐mac 读写NTFS工具Tuxera NTFS for Mac2023中文破解版

大家好啊~今天要给大家推荐的是 Tuxera NTFS for Mac2023中文破解版! 小可爱们肯定知道,Mac系统一直以来都有一个小小的痛点,就是无法直接读写NTFS格式的移动硬盘和U盘。但是,有了Tuxera NTFS for Mac2023,…

Kubeadm构建K8S集群指南:从环境准备到Dashboard部署的详细步骤与常见问题解决方案

文章目录 一、环境准备1、准备1主2从2、设置主机名与时区3、添加hosts网络主机配置4、关闭防火墙5、验证是否配置正确 二、安装Kubeadm1、在每个Centos上安装Docker2、确保从cgroups均在同一个从groupfs3、安装kubeadm集群部署工具4、关闭交换区5、配置网桥6、通过镜像安装k8s7…

亚信安慧AntDB数据库中级培训ACP上线,中国移动总部首批客户认证通过

近日,亚信安慧AntDB数据库ACP(AntDB Certified Professional)中级培训课程于官网上线。在中国移动总部客户运维团队、现场项目部伙伴和AntDB数据库成员的协同组织下,首批中级认证学员顺利完成相关课程的培训,并获得Ant…

LAMP安装部署网站

目录 什么是LAMP? 实验(搭建一个论坛) 一,安装apache 1.关闭防火墙,将安装Apache所需软件包传到/opt目录下 2.安装环境依赖包 3.配置软件模块 4.编译及安装 5.优化配置文件路径,并把httpd服务的可执行程序文件…