MySQL学习——行数计算

数据库经常被用来回答这样的问题:“某种类型的数据在表中出现的频率是多少?”例如,你可能想知道你有多少只宠物,或者每个主人有多少只宠物,或者你可能想对你的动物进行各种类型的人口普查操作。

计算你拥有的动物总数与“pet表中有多少行?”这个问题是相同的,因为每个宠物都有一条记录。COUNT(*)用于计算行数,所以查询以计算你的动物的数量的SQL语句看起来是这样的:

mysql> SELECT COUNT(*) FROM pet;+----------+| COUNT(*) |+----------+|        9 |+----------+

早些时候,你检索了拥有宠物的人的名字。如果你想找出每个主人有多少宠物,你可以使用 COUNT() 函数。以下是一个使用 COUNT() 函数并结合 GROUP BY 来找出每个宠物主人拥有多少宠物的SQL查询示例:

mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;+--------+----------+| owner  | COUNT(*) |+--------+----------+| Benny  |        2 || Diane  |        2 || Gwen   |        3 || Harold |        2 |+--------+----------+前面的查询使用了

GROUP BY来按每个主人对所有记录进行分组。COUNT()GROUP BY结合使用对于按不同分组来表征你的数据非常有用。以下示例展示了执行动物人口普查操作的不同方法。

每种物种的动物数量:

mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;+---------+----------+| species | COUNT(*) |+---------+----------+| bird    |        2 || cat     |        2 || dog     |        3 || hamster |        1 || snake   |        1 |+---------+----------+

按性别统计动物数量:

mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;+------+----------+| sex  | COUNT(*) |+------+----------+| NULL |        1 || f    |        4 || m    |        4 |+------+----------+

(在这个输出中,NULL表示性别未知。)

按物种和性别的组合统计动物数量:

mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;+---------+------+----------+| species | sex  | COUNT(*) |+---------+------+----------+| bird    | NULL |        1 || bird    | f    |        1 || cat     | f    |        1 || cat     | m    |        1 || dog     | f    |        1 || dog     | m    |        2 || hamster | f    |        1 || snake   | m    |        1 |+---------+------+----------+

当你使用COUNT()时,你不需要检索整个表。例如,如果只对狗和猫执行前面的查询,查询将如下所示:

mysql> SELECT species, sex, COUNT(*) FROM petWHERE species = 'dog' OR species = 'cat'GROUP BY species, sex;+---------+------+----------+| species | sex  | COUNT(*) |+---------+------+----------+| cat     | f    |        1 || cat     | m    |        1 || dog     | f    |        1 || dog     | m    |        2 |+---------+------+----------+

或者,如果你只想知道性别已知的动物的性别分布数量,可以这样查询:

mysql> SELECT species, sex, COUNT(*) FROM petWHERE sex IS NOT NULLGROUP BY species, sex;+---------+------+----------+| species | sex  | COUNT(*) |+---------+------+----------+| bird    | f    |        1 || cat     | f    |        1 || cat     | m    |        1 || dog     | f    |        1 || dog     | m    |        2 || hamster | f    |        1 || snake   | m    |        1 |+---------+------+----------+

如果你在COUNT()值之外还命名了要选择的列,那么应该存在一个GROUP BY子句,该子句命名了相同的列。否则,会发生以下情况:

如果启用了ONLY_FULL_GROUP_BY SQL模式,则会发生错误:

mysql> SET sql_mode = 'ONLY_FULL_GROUP_BY';Query OK, 0 rows affected (0.00 sec)mysql> SELECT owner, COUNT(*) FROM pet;ERROR 1140 (42000): In aggregated query without GROUP BY, expression#1 of SELECT list contains nonaggregated column 'menagerie.pet.owner';this is incompatible with sql_mode=only_full_group_by

如果ONLY_FULL_GROUP_BY没有启用,查询会将所有行视为一个单一组进行处理,但对于每个命名列所选的值是不确定的。服务器可以自由地从任何行中选择值:

mysql> SET sql_mode = '';Query OK, 0 rows affected (0.00 sec)mysql> SELECT owner, COUNT(*) FROM pet;+--------+----------+| owner  | COUNT(*) |+--------+----------+| Harold |        8 |+--------+----------+1 row in set (0.00 sec)

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

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

相关文章

HCIP的学习(28)

第九章,链路聚合和VRRP 链路聚合 ​ 目的:备份链路以及提高链路带宽。 ​ 链路聚合技术(Eth-Trunk):将多个物理接口捆绑成一个逻辑接口,将N条物理链路逻辑上聚合为一条逻辑链路。 正常情况下,…

成功解决“IndexError: queue index out of range”错误的全面指南

成功解决“IndexError: queue index out of range”错误的全面指南 引言 在Python编程中,queue模块提供了同步队列类,包括FIFO(先进先出)队列Queue,LIFO(后进先出)队列LifoQueue,以…

Redis——基本命令

概念: Redis(REmote Dlctionary Server) 是用 C语言开发的一个开源的高性能键值对(key-value) 数据库 特征: 1. 数据间没有必然的关联关系 2. 内部采用单线程机制进行工作 3. 高性能 4. 多数据类型支持 字符串类型 string 列表类型 …

零基础入门篇①⑥ Python可变序列类型--字典

Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏限时一个月(5.8~6.8)重…

C++STL---deque常见用法

C STL中的deque deque(双端队列)是C标准模板库(STL)中的一个序列容器,它允许在容器的前端和后端快速插入和删除元素。与vector相比,deque提供了更灵活的数据结构,特别适合于需要频繁在两端操作…

期权高频交易能做吗?期权可以频繁交易吗?

今天带你了解期权高频交易能做吗?期权可以频繁交易吗?在期权交易市场,大部分人都知道不能频繁交易,就连不少投资新手都知道频繁交易是大忌,是错误的,是应该避免的。所以是不行的。 期权高频交易能做吗&…

智慧公安大数据研判工具(十八)

智慧公安以大数据、云计算、人工智能、物联网和移动互联网技术为支撑,以“打、防、管、控”为目的,综合研判为核心,共享信息数据资源,融合业务功能,构建公安智慧大数据平台,实现公安信息数字化、网络化和智…

阿里云搭建物联网平台+MQTT.fx接入阿里云

文章目录 本篇介绍一、阿里云物联网平台搭建二 、MQTT客户端接入阿里云物联网平台总结 本篇介绍 本篇搭建了阿里云物联网平台,使用MQTT.fx接入阿里云,上传温湿度数据 使用到的软件:阿里云、MQTT.fx 一、阿里云物联网平台搭建 首先创建一个物…

MinIO 使用

MinIO自建对象存储 1、dock-compose 使用dock-compose拉取 minio:image: "minio/minio"container_name: minioports:- "9000:9000"- "9001:9001"volumes:- "./minio/data1:/data1"- "./minio/data2:/data2"restart: on-fai…

go语言方法之方法值和方法表达式

我们经常选择一个方法,并且在同一个表达式里执行,比如常见的p.Distance()形式,实际上 将其分成两步来执行也是可能的。p.Distance叫作“选择器”,选择器会返回一个方法"值"->一 个将方法(Point.Distance)绑定到特定接…

从 AdaBoost 到随机森林:深入解析集成学习方法【集成学习】

集成学习的思想 集成学习是一种通过组合多个基学习器(弱学习器)来提高模型预测性能的机器学习方法。集成学习的思想类似于谚语“三个臭皮匠,顶个诸葛亮”,即通过集成多个表现较差的学习器,可以获得一个强大的整体模型…

从0开发一个Chrome插件:测试项目效果

前言 这是《从0开发一个Chrome插件》系列的第五篇文章,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发Chrome插件的必要…

Glow模型【图解版加代码】

论文:Glow: Generative Flow with Invertible 1x1 Convolutions 代码:pytorch版本:rosinality/glow-pytorch: PyTorch implementation of Glow (github.com) 正版是TensorFlow版本 openai的 参考csdn文章:Glow-pytorch复现gith…

Cobalt_Strike(CS)渗透工具安装使用到免杀上线

Cobalt_Strike(CS)安装到免杀上线 原文链接: cs免杀上线 点我 https://mp.weixin.qq.com/s?__bizMzkxNDY5NzMxNw&mid2247483862&idx1&snc6b4da3ce5772a075431098227397baa&chksmc16b3cdcf61cb5ca06f61513…

以sqlilabs靶场为例,讲解SQL注入攻击原理【18-24关】

【less-18】 打开时,获取了自己的IP地址。,通过分析源码知道,会将用户的user-agent作为参数记录到数据库中。 提交的是信息有user-Agent、IP、uname信息。 此时可以借助Burp Suite 工具,修改user_agent,实现sql注入。…

力扣14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl"示例 2: 输…

数字水印 | 盲水印嵌入:量化索引机制 QIM

目录 1 什么是量化索引调制?1.1 为什么使用 QIM?1.2 QIM 的算法思想1.3 什么是量化操作?1.4 论文中对 QIM 的介绍 2 盲水印论文中的实际应用2.1 均匀量化器2.2 对论文的分析 😇前言:不知道为什么,Q…

Windows下如何把Oracle从C盘整体迁移到D盘?

(一)写这篇文章的起因 这篇文章适合刚接触的技术小白follow操作,整理文章不易,大家多多点赞转发 起因是昨天有会员在群里发问,客户要把Oracle整个目录从C盘挪到D盘怎么弄 客户那边的人把Oracle整个程序数据文件都安装…

【C++】vector的模拟实现

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 1. vector的核心框架接口 2. 构造函数 2.1 基本构造 2.2 拷贝构造(传统写法) 2.3 析构函数 2…

《python》poetry install下载缓慢,网络问题断开连接--poetry换源镜像下载

在使用打包工具poetry进行打包的是出现了一个问题就是,在使用poetry进行打包的时候出现了,连接断开这样的问题,这个问题是可以通过换源,通过国内的镜像来解决这个问题就可以了。 找到项目中的pyoroject。toml文件这个文件中写了一…