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

如何使用GROUP BY一次计算新类别和旧类别

丁震博
2023-03-14
问题内容

例如,我有这样的数据:

   Group    Money
    A       100
    A       200
    B       100
    B       300
    B       110

我想使用GROUP BY(其他方法)来汇总我的数据,如下所示:

   Group    Money  Average  Count
    A       300     150       2
    B       510     170       3
    C       810     162       5

C组是指A&B组

有什么方法可以通过一些简单的方法获得结果吗?


问题答案:

您正在寻找的是ROLLUP。可以通过不同的方式来完成此操作,具体取决于您所使用的数据库:

DB2,HANA,Oracle,PostgreSQL 9.5,SQL Server,Sybase SQL Anywhere

在SQL标准中也这样指定:

SELECT COALESCE("Group", 'C'), SUM(Money), AVG(Money), COUNT(*)
FROM t
GROUP BY ROLLUP ("Group")

Cubrid,MariaDB,MySQL

SELECT COALESCE(`Group`, 'C'), SUM(Money), AVG(Money), COUNT(*)
FROM t
GROUP BY `Group` WITH ROLLUP

其他

SELECT "Group", SUM(Money), AVG(Money), COUNT(*)
FROM t
GROUP BY "Group"
UNION ALL
SELECT 'C', SUM(Money), AVG(Money), COUNT(*)
FROM t


 类似资料:
  • 本文向大家介绍浅谈python新式类和旧式类区别,包括了浅谈python新式类和旧式类区别的使用技巧和注意事项,需要的朋友参考一下 python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。 为什么要在2.2中引进new style class呢?官方给的解释是: 为了统一类(class)和类型(type)。 在2.2之前,比如2.1版本中,类和类型是不同的,如a是Clas

  • 这个面试官问了,我说了老半天,不知道他问的真正意图是什么. stackoverflow 这篇文章很好的介绍了新式类的特性: http://www.cnblogs.com/btchenguang/archive/2012/09/17/2689146.html 新式类很早在2.2就出现了,所以旧式类完全是兼容的问题,Python3里的类全部都是新式类.这里有一个MRO问题可以了解下(新式类继承是根据C

  • 问题内容: 我有以下形式的数据: 组内的非空值始终相同。我想对每个组(如果存在)的非空值进行一次计数,然后找到每个值的总数。 我目前正在以以下方式(笨拙和低效)进行此操作: 我敢肯定,有一种方法可以更干净地执行此操作,而无需使用循环,但是我似乎无法解决问题。任何帮助将非常感激。 问题答案: 我认为您可以使用: 的另一种解决方案,然后创建new by ,将其重塑为by和last :

  • 问题内容: Python中的旧样式类和新样式类有什么区别?什么时候应该使用其中一个? 问题答案: 在Python 2.1之前,旧式类是用户可用的唯一样式。 (旧式)类的概念与类型的概念无关:如果是旧式类的实例,则指定的类,但始终为。 这反映了这样一个事实,即所有旧式实例(独立于其类)均使用称为实例的单个内置类型实现。 在Python 2.2中引入了新的类,以统一和的概念。新型类只是用户定义的类型,

  • 我的类别表设计如下 我有三个级别的类别 < li >父项 < li >孩子 < li >子系 如何以下列方式显示它们? (SELECT*From类别):我得到以下数组,如下所示

  • 问题内容: 我的数据如下所示: 我要完成的工作是按类别获取最新的2个条目(按insertdate DESC的顺序排列),因此结果应为: 使用获取最新消息很容易,但是如何在不启动多个查询的情况下获取最新2? 感谢您的帮助;-) S. 问题答案: 在这里,你哥们!