Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >选择GROUP BY子句中指定的列以外的列

选择GROUP BY子句中指定的列以外的列
EN

Stack Overflow用户
提问于 2013-04-11 19:34:17
回答 2查看 6.4K关注 0票数 2

有没有办法选择group by子句中指定的列以外的列?假设我有以下模式:

学生(id,姓名,年龄),课程(id,姓名,学分),入学(student_id,course_id,年级)

我想为每个课程查询以下内容:课程的名称,student_count。

我想出了解决办法,但我想知道是否有更干净的方法来做到这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT MAX(c.name), COUNT(distinct e.student_id)
FROM Enrollment e
INNER JOIN Course c ON c.id = e.course_id
GROUP BY e.course_id;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-11 19:36:33

不,你不能。但是你可以用c.name扩展GROUP BY

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT MAX(c.name), COUNT(distinct e.student_id)
FROM Enrollment e
INNER JOIN Course c ON c.id = e.course_id
GROUP BY e.course_id, c.name

因为e.course_id是唯一的,所以它不会改变结果。

票数 2
EN

Stack Overflow用户

发布于 2013-04-11 19:53:47

您可能希望复制此DDL,调整它以匹配您的架构,然后将其粘贴到您的问题中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table Student(
  student_id integer primary key, 
  student_name varchar(35) not null, 
  age int not null default 20
);

create table Course(
  course_id integer primary key, 
  course_name varchar(35) not null, 
  credit integer not null default 3
);

create table Enrollment(
  student_id integer not null references Student (student_id), 
  course_id integer not null references Course (course_id), 
  primary key (student_id, course_id),
  grade char(1) not null
);

insert into student values 
(1, 'a', 20),
(2, 'b', 20),
(3, 'c', 20);

insert into course values
(1, 'course 1', 3),
(2, 'course 2', 3),
(3, 'course 3', 3);

insert into enrollment values
(1, 1, 'b'),
(2, 1, 'b'),
(3, 1, 'b'),
(1, 2, 'b'),
(2, 2, 'b'),
(3, 3, 'b');

现在,您只需查询“注册”表,即可获得每门课程的注册人数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select course_id, count(student_id) num_students
from enrollment
group by course_id
order by course_id;

course_id  num_students
--
1          3
2          2
3          1

剩下的工作就是获取相应的课程名称。为此,您只需将表"Course“与我们刚刚编写的查询连接起来。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select course.course_name, course_enrollment.num_students
from course
inner join (select course_id, count(student_id) num_students
            from enrollment
            group by course_id) course_enrollment
        on course.course_id = course_enrollment.course_id;

course_name  num_students
--
course 1     3
course 3     1
course 2     2
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15957314

复制
相关文章
java调用wkhtmltopdf生成pdf文件,美观,省事
最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果,
大道七哥
2019/09/10
5.1K1
java调用wkhtmltopdf生成pdf文件,美观,省事
ASP.NET指定页面转PDF、JPG(插件)
转PDF、JPG插件(wkhtmltox-0.12.4_msvc2015-win64.exe)
小语雀网
2022/05/06
1.8K0
wkhtmltopdf入门
在进行网页开发中,有时会遇到需要将网页内容转换为PDF格式的需求,这时候我们可以使用​​wkhtmltopdf​​工具来实现。本篇文章将介绍​​wkhtmltopdf​​的基本用法和常见问题。
大盘鸡拌面
2023/10/25
1.5K0
linux wkhtmltopdf install
download: https://wkhtmltopdf.org/downloads.html
刀枪不入de王二花
2022/09/30
6000
在线文档电子书化
在网上看到某技术产品的文档,想把文档弄下来在电子书阅读器上离线看,可发现这个技术文档没有提供pdf等电子书格式,于是想办法自己做一个,这里记录一下。
jeremyxu
2019/03/15
1.4K0
在 Linux 上查找和删除损坏的符号链接
符号链接(symbolic link)在 Linux 系统上扮演了非常有用的角色。它们可以帮助你记住重要文件在系统上的位置,使你更容易访问这些文件,并让你不必为了更方便访问大文件而复制它们,从而节省了大量的空间。
用户9104802
2021/11/22
2.7K0
Go每日一库之149:PDF处理相关库
使用qpdf进行强制解密,有些情况是可以解密成功的,但是有些情况也不一定能解密成功
luckpunk
2023/10/02
2.3K0
nodejs生成多层目录和生成文件的通用方法
/** *生成多层目录 * @param dir 多层目录 * @param split 分隔符,ex:'/' 对应的目录地址:'2015/10/10' * @param mode 目录权限(读写权限),默认0777 * @param callback */ var createDirsSync = function (dir, split, mode, callback) { console.log("创建目录:" + dir); if (!fs.existsSync(dir)
磊哥
2018/05/08
8370
nodejs中生成uuid
nodejs中有一个uuid的生成库uuid:https://www.npmjs.com/package/uuid,使用起来非常简单。
ccf19881030
2020/11/06
7.2K0
error: wkhtmltopdf ContentNotFoundError
#Exit with code 1 due to network error: ContentNotFoundError
刀枪不入de王二花
2022/08/17
1.3K0
error: wkhtmltopdf ContentNotFoundError
将自己的nodeJS项目分享到npm上
在项目中输入cmd 第三种:使用按住电脑上的window+r,进入如下图所示,然后输入cmd,点击确定进入控制台
_kyle
2020/08/24
7270
将自己的nodeJS项目分享到npm上
python报错wkhtmltopdf: command not found【python】
yum install zlib fontconfig freetype X11 libs libX11 libXext libXrender libpng*
sinnoo
2020/11/13
1.2K0
wkhtmltopdf linux 中文乱码解决【python】
/usr/local/bin/wkhtmltopdf 1.html 1.pdf
sinnoo
2020/11/13
8K0
ALM损坏后的恢复步骤
ALM是HP出品的软件开发生命周期软件,其全称是Application Lifecycle Management,其采用B/S结构,从需求,业务模型到测试用例和缺陷管理亦应具有,满足了一般软件企业对开发的产品和项目的全程管理,功能强大易用。 本人使用的ALM采用微软的SQL Server2008作为其数据库,一直用的好好的,但因停电导致启动机器后无法使用(ALM和SQL Server两者都部署在同一台机器中),后来才发现对应的数据库处于suspect状态。 之后查找资料,好不容易将数据库搞好了,但ALM仍无
企鹅号小编
2018/01/25
1.3K0
nodejs 生成8位短id
nodejs版: var uuid = require('uuid'); var shortArray = ["a", "b", "c", "d", "e", "f",     "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",     "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",     "6", "7", "8", "9", "A", "B",
小贝壳
2020/03/05
2.9K0
centos7安装Wkhtmltopdf
从官网下载预编译版安装: wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 解压 tar xvfJ wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 移动位置并赋予权限 cd wkhtmltox/bin sudo mv ./wkhtmltopdf /usr/bin/wkhtmltopdf
如梦初醒_-
2022/10/26
1.2K0
nodejs生成不重复数字的一种办法
最近在做需求的时候,有个管理端接口需要在调用的时候传递一个无符号的32位整形文件ID,也就是0 ~ 4294967295之间的数字,每次调用接口这个文件ID不能重复。
easonxie
2021/06/21
2.3K0
在CentOS 6.5上安装NodeJS
CentOS的软件源未包含有最新的nodejs, 需要手动编译安装。 首先安装依赖的库与工具 yum install libtool automake autoconf gcc-c++ openssl-devel 准备命令: yum install epel-release 无需下载源码及解压: 安装: yum install nodejs 验证是否安装配置成功: node -v
似水的流年
2019/12/06
1.1K0
Oracle数据块损坏的恢复实例
数据库有有效的RMAN备份,那么很简单,直接恢复损害数据块即可。 RMAN> blockrecover datafile 6 block 3893;
Alfred Zhao
2019/05/24
1.7K0
点击加载更多

相似问题

结构化numpy数组中多列的Numpy.isin过滤

15

numpy结构化数组按多列排序

13

如何在numpy中返回数组列?

234

如何在多列上屏蔽numpy结构数组?

12

修改数组numpy中的多列

221
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文