文档章节

在多列上使用group by

 技术盛宴
发布于 2019/12/15 11:12
字数 707
阅读 17
收藏 0

我理解GROUP BY x的观点

GROUP BY x, y如何运作的,它是什么意思?


#1楼

Group By X表示将所有具有相同X值的组合放入一组中

Group By X, Y表示将所有具有相同值的值放在一个组中的X和Y.

为了说明一个例子,假设我们有下表,与谁在大学的哪个科目上学习有关:

Table: Subject_Selection

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

仅在主题列上使用group by ; 说:

select Subject, Count(*)
from Subject_Selection
group by Subject

你会得到类似的东西:

Subject    Count
------------------------------
ITB001     5
MKB114     2

...因为ITB001有5个条目,MKB114有2个条目

如果我们group by两列group by

select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester

我们会得到这个:

Subject    Semester   Count
------------------------------
ITB001     1          3
ITB001     2          2
MKB114     1          2

这是因为,当我们按两列分组时,它会说“将它们分组,以便所有具有相同主题和学期的人在同一组中,然后计算所有聚合函数 (Count,Sum,Average等)。 ) 对于每个群体“ 。 在这个例子中,事实表明,当我们计算它们时,有个人在第一学期做ITB001, 两个人在第二学期做这个。做MKB114的人都在第一学期,所以没有第二学期的行(没有数据适合“MKB114,第二学期”组)

希望这是有道理的。


#2楼

GROUP BY子句与聚合函数结合使用,以按一列或多列对结果集进行分组。 例如:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

记住这个顺序:

1)SELECT(用于从数据库中选择数据)

2)FROM(子句用于列出表)

3)WHERE(子句用于过滤记录)

4)GROUP BY(子句可以在SELECT语句中用于跨多个记录收集数据并按一列或多列对结果进行分组)

5)HAVING(子句与GROUP BY子句结合使用,将返回行组限制为条件为TRUE的那些行)

6)ORDER BY(关键字用于对结果集进行排序)

如果使用聚合函数,则可以使用所有这些,这是必须设置的顺序,否则可能会出错。

聚合函数是:

MIN返回给定列中的最小值

SUM返回给定列中数值的总和

AVG返回给定列的平均值

COUNT返回给定列中的值的总数

COUNT(*)返回表中的行数

本文转载自:https://stackoom.com/question/A9ue/在多列上使用group-by

粉丝 0
博文 772
码字总数 0
作品 0
深圳
高级程序员
私信 提问
Linq:Group By用法

1.简单形式: var q =from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按CategoryID划分产品。 说明:from p in db.Products 表示从表中将产品对象取...

随智阔
2013/07/17
138
0
oracle中group by的高级用法

简单的group by用法 select c1,sum(c2) from t1 where t1<>'test' group by c1 having sum(c2)>100; rollup(多列)——上卷汇总,从最后一个汇总字段开始上卷汇总,一直到合计 select c1,c2,s......

hulubo
2012/04/09
797
0
Pandas GroupBy的使用

任何groupby操作都会涉及到下面的三个操作之一: Splitting:分割数据 Applying:应用一个函数 Combining:合并结果 在许多情况下,我们将数据分成几组,并在每个子集上应用一些功能。在应用中...

致Great
2018/11/07
0
0
group by搭配 order by解决排序问题

问题 Ftravel_id Facct_no Froute_code Fmodify_time 41010020180725102219102000010452 1359c027b0a15266418643239300118 4101001701E214 2018-07-25 10:22:19 410100201807251027491020000......

cposture
2018/07/30
0
0
pandas的Groupby加速

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qtlyx/article/details/87301224 在平时的金融数据处理中,模型构建中,经常会用到pandas的groupby。之前的一...

钱塘小甲子
2019/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 宇宙银河乱弹英雄传 —— @FalconChen

1Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :Axxis的单曲《Only God Knows》 最近只听摇滚,挖了好多以前没听过的歌,蛮好。#今日歌曲推荐# 《Only God Knows》- Axxis 手机...

小小编辑
今天
280
2
Safari Date() 函数对日期时间字符串(yyyy-MM-dd HH:mm:ss) 提示NaN的问题

今天发现一个奇怪的问题,在iPhone使用 safari 选择定时发布文章到OSC,选择时间后提示不是合法的时间,判断时间的代码如下: var d = new Date('2020-01-23 23:15'); if (isNaN(d)) {...

FalconChen
昨天
140
0
ActiveMQ学习之通讯协议

一、支持的通讯协议 ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、HTTP(S)、VM 其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的<TransportCon...

冥焱
昨天
91
0
应急广播户户通平台

一、平台概述 应急广播户户通平台为软硬一体化广播服务解决方案。实现了应急广播、视音频及图片文字信息、调频及数字广播FM、天气预报信息接收功能,以及视音频播放、智能机器人、电子日历等...

neocean
昨天
133
0
如何为Apache 2.2启用mod_rewrite

我已经在我的Vista机器上安装了新的Apache 2.2,一切正常,除了mod重写。 我没有注释 LoadModule rewrite_module modules/mod_rewrite.s 但是我的重写规则都没有,即使是简单的重写规则 Re...

javail
昨天
53
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部