mysql 二次分组_MySQL分组

mysql 二次分组_MySQL分组GROUPBY 语法 SELECTcolumn name function column name FROMtable nameWHEREcol nameoperator name 实例演示 本实例使用到了以下表结构及数据 使用前我们可以先将以下数据导入数据库中 SETNAMESutf8 SETFOREIGN KEY CHECK

【GROUP BY 语法】

SELECT column_name, function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

【实例演示】

本实例使用到了以下表结构及数据,使用前我们可以先将以下数据导入数据库中。

SET NAMES utf8;

SET FOREIGN_KEY_CHECKS = 0;

— —————————-

—  Table structure for `employee_tbl`

— —————————-

DROP TABLE IF EXISTS `employee_tbl`;

CREATE TABLE `employee_tbl` (

`id` int(11) NOT NULL,

`name` char(10) NOT NULL DEFAULT ”,

`date` datetime NOT NULL,

`singin` tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘登录次数’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

— —————————-

—  Records of `employee_tbl`

— —————————-

BEGIN;

INSERT INTO `employee_tbl` VALUES (‘1’, ‘小明’, ‘2016-04-22 15:25:33’, ‘1’), (‘2’, ‘小王’, ‘2016-04-20 15:25:47’, ‘3’), (‘3’, ‘小丽’, ‘2016-04-19 15:26:02’, ‘2’), (‘4’, ‘小王’, ‘2016-04-07 15:26:14’, ‘4’), (‘5’, ‘小明’, ‘2016-04-11 15:26:40’, ‘4’), (‘6’, ‘小明’, ‘2016-04-04 15:26:54’, ‘2’);

COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

导入成功后,执行以下 SQL 语句:

mysql> set names utf8;

mysql> SELECT * FROM employee_tbl;

+—-+——–+———————+——–+

| id | name   | date                | singin |

+—-+——–+———————+——–+

|  1 | 小明 | 2016-04-22 15:25:33 |      1 |

|  2 | 小王 | 2016-04-20 15:25:47 |      3 |

|  3 | 小丽 | 2016-04-19 15:26:02 |      2 |

|  4 | 小王 | 2016-04-07 15:26:14 |      4 |

|  5 | 小明 | 2016-04-11 15:26:40 |      4 |

|  6 | 小明 | 2016-04-04 15:26:54 |      2 |

+—-+——–+———————+——–+

6 rows in set (0.00 sec)

接下来我们使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;

+——–+———-+

| name   | COUNT(*) |

+——–+———-+

| 小丽 |        1 |

| 小明 |        3 |

| 小王 |        2 |

+——–+———-+

3 rows in set (0.01 sec)

【使用 WITH ROLLUP】

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:

mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

+——–+————–+

| name   | singin_count |

+——–+————–+

| 小丽 |            2 |

| 小明 |            7 |

| 小王 |            7 |

| NULL   |           16 |

+——–+————–+

4 rows in set (0.00 sec)

其中记录 NULL 表示所有人的登录次数。

我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:

select coalesce(a,b,c);

参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

以下实例中如果名字为空我们使用总数代替:

mysql> SELECT coalesce(name, ‘总数’), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

+————————–+————–+

| coalesce(name, ‘总数’) | singin_count |

+————————–+————–+

| 小丽                   |            2 |

| 小明                   |            7 |

| 小王                   |            7 |

| 总数                   |           16 |

+————————–+————–+

4 rows in set (0.01 sec)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222250.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:13
下一篇 2026年3月17日 下午4:13


相关推荐

  • Hadoop官方文档中文版3.2.1稳定版

    Hadoop官方文档中文版3.2.1稳定版第一节设置单节点集群目的这个文档描述了如何设置和配置单节点的安装 以便您可以使用 HadoopMapRed 和 Hadoop 分布式文件系统 HDFS 进行快速的简单操作 准备平台支持支持 GNU Linux 作为开发的生产平台 Hadoop 已经在具有 2000 个 GNU Linux 集群进行了演示 Windows 平台同样得到了支持 但是以下的步骤只针对于 Linux 如果想在 Windows 平台设置 Hadoop 请参考 wiki 页面 需要的软件对于 Linux 需要的软件包括 必须安装 Java 推荐

    2025年8月14日
    24
  • CentOS7 安装 oracle 10g

    CentOS7 安装 oracle 10g先安装 vnc 因为本次使用的是图形界面按照 可参考 nbsp https blog csdn net article details 在关闭 selinux 及防火墙修改 Linux 发行版本信息由于 Oracle10g 发行的时候 CentOS6 7 没有发行 所以 Oracle10g 并没有对 CentOS6 7 确认支持 需要修改文件让 Oracle10g 支

    2026年3月26日
    2
  • bs4 Beautiful Soup详解

    bs4 Beautiful Soup详解Python bs4 的使用概述 bs4 全名 BeautifulSou 是编写 python 爬虫常用库之一 主要用来解析 html 标签 一 初始化 frombs4impor BeautifulSou html AHtmlText html html parser 两个参数 第一个参数是要解

    2026年3月17日
    2
  • 解决kafka无法删除topic问题

    解决kafka无法删除topic问题1.问题描述使用kafka命令删除某个topic之后,查看集群的topic列表时,被删除的tpoic依然存在#/data/kafka/bin/kafka-topics.sh–delete–zookeeperzook_ip–topicsystemTopicsystemismarkedfordeletion.Note:Thiswillhavenoimpactifdelete.topic.enableisnotsettotrue.[外链图片转存失败,

    2022年10月16日
    5
  • Java审计之CMS中的那些反序列化漏洞

    Java审计之CMS中的那些反序列化漏洞0x00前言过年这段时间比较无聊,找了一套源码审计了一下,发现几个有意思的点拿出来给分享一下。0x01XStream反序列化漏洞下载源码下来发现并

    2021年12月12日
    55
  • 微信公众号基础功能搭建怎么弄_怎么做一个订阅号

    微信公众号基础功能搭建怎么弄_怎么做一个订阅号自动回复在微信公众号后台首页左侧导航栏中找到功能。然后点击自动回复。自动回复包含被关注回复、收到消息回复和关键词回复三项内容自定义菜单

    2025年7月6日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号