当前位置: 首页 > 面试题库 >

计数列分组依据

滕翔飞
2023-03-14
问题内容

我有如下的SQL:

select a.dept, a.name
  from students a
 group by dept, name
 order by dept, name

并得到结果:

dept   name
-----+---------
CS   | Aarthi
CS   | Hansan
EE   | S.F
EE   | Nikke2

我想总结每个部门的学生人数,如下所示:

dept   name        count
-----+-----------+------  
CS   | Aarthi    |  2
CS   | Hansan    |  2
EE   | S.F       |  2
EE   | Nikke2    |  2
Math | Joel      |  1

我该如何编写sql?


问题答案:

尽管您似乎并未显示所有表格,但我只能假设还有每位学生的实际入学表格

select a.Dept, count(*) as TotalStudents
  from students a
  group by a.Dept

如果您想要与每个学生相关联的每个部门的总数(这没有意义),则可能必须这样做…

select a.Dept, a.Name, b.TotalStudents
    from students a,
        ( select Dept, count(*) TotalStudents
             from students
             group by Dept ) b
    where a.Dept = b.Dept

我对“姓名”列的解释是学生的姓名,而不是班级实际讲师的姓名,因此,我进行子选择/加入。否则,就像其他人一样,只需要使用COUNT(*)作为第三列即可。



 类似资料:
  • 问题内容: 我有一个看起来像这样的模型: 我想要为每个类别选择项目的计数(只是计数),因此在SQL中,它会像这样简单: 有没有相当于做这种“ Django方式”?还是纯SQL是唯一的选择?我熟悉Django中的count()方法,但是我看不出group by如何适合那里。 问题答案: 正如我刚刚发现的,这里是如何使用Django 1.1聚合API进行此操作:

  • 问题内容: 我试图弄清楚如何编写一个查询多个列中的值的查询,结果表在每个列中对 任何 列的每个可能值都有一个计数。 示例:说我有 mytable 我想要一个查询,在每列中计算a和b,产生类似以下内容的结果: 我知道我可以通过 group by 轻松地对单个列执行此操作: 但是是否可以对 每一 列都执行此操作? 我正在使用SQL Server 2008(T-SQL)。在此先感谢您的帮助! 问题答案:

  • 问题内容: 我正在尝试转换此查询(已经可以使用) 对于Linq to SQL,但我不知道自己在做什么错。看我的尝试 我只需要对建筑物进行分组并计算每个建筑物有多少用户。 问题答案: 只需使用以下方法:

  • 问题内容: 我明白这一点。 但是,它是如何工作的,又意味着什么呢? 问题答案: 意味着 将所有具有相同X值的那些放在一组 。 意味着 将所有具有相同X和Y值的那些放在一组中 。 为了举例说明,假设我们有一个下表,该表与谁在大学里修读什么科目有关: 仅在主题列上使用a时;说: 您将获得类似以下内容的信息: …因为ITB001有5个条目,MKB114有2个条目 如果我们要到两列: 我们会得到这个: 这

  • 我有一个熊猫数据框,格式如下: df: 现在我想将其分为两列,如下所示: 输出: 我想得到每一行的计数,如下所示。预期产出: 如何获得我的预期输出?我想找出每个“col2”值的最大计数?

  • 问题内容: 我试图在多列中计数,然后按总和将相同数据显示在任何列中 我希望它显示如下内容: 问题答案: 您可以使用联合查询