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

SQL分组依据:使用where子句逻辑基于聚合函数过滤结果

唐阳晖
2023-03-14
问题内容

我有一个基本的group by / avg语句:

select url, avg(contentping+tcpping), count(*) from websites ws, ping pi 
where ws.idwebsite = pi.idwebsite and errortype is null
group by url order by avg(contentping+tcpping) asc;

我现在想做的是删除任何比平均ping高500的结果。我该怎么做…?


问题答案:

只需添加一个having子句:

select url, avg(contentping+tcpping), count(*) from websites ws, ping pi 
where ws.idwebsite = pi.idwebsite and errortype is null
group by url 
having avg(contenetping+tcpping) < 500
order by avg(contentping+tcpping) asc;


 类似资料:
  • 问题内容: 考虑Oracle表。我想用顶薪与获得职工和。还假定没有“ empno”列,并且主键涉及许多列。您可以使用以下方法执行此操作: 这可行,但我必须重复测试deptno = 20和job =’CLERK’,这是我想避免的。有没有更优雅的方式编写此代码,也许使用?顺便说一句,如果这很重要,我正在使用Oracle。 问题答案: 以下内容经过了精心设计,但对于“ top x”查询而言,这是一个很好

  • 问题内容: 简而言之,我有一个表格,其中除其他外,还包含一个用于时间戳记的列。我想获得具有最新(即最大价值)时间戳的行。目前,我正在这样做: 但是我宁愿做这样的事情: 但是,SQLite拒绝此查询: 该文件证实了这一行为(页面底部): 聚合函数只能在SELECT语句中使用。 我的问题是:是否可以编写查询以获取具有最大时间戳的行,而无需对select进行排序并将返回的行数限制为1?这似乎应该有可能,

  • 问题内容: 考虑以下MySQL查询: …如何保证行集按照提供给子句的值的确切顺序排好序?我猜想如果不给它一个子句就无法保证,对吗? PS .: 子句 的值将是由PHP以以下方式(使用Zend Framework的select语句)传递给查询的任意数据的数组: 问题答案: 在ORDER BY中使用CASE语句: 根据需要分配任意值。我通常不包括在内,因为如果未定义则暗含它,但我想明确表示,以备不时之

  • 问题内容: 我有两个带有以下字段的表 我需要编写一个查询,其中提供了雇员的详细信息,雇员获得加薪的次数,最大加薪金额的值以及该加薪的日期。这是我到目前为止所拥有的: 除了授予最高增加额的日期外,这正确地给出了所有要求。我尝试了以下方法,但均未成功: 这给出了错误“组功能的无效使用”。有人知道我在做什么错吗? 问题答案: 您不能在where子句中执行此操作,无论是在联接条件下使用还是在联接条件下执行

  • 本文向大家介绍SQL 使用HAVING子句过滤GROUP BY结果,包括了SQL 使用HAVING子句过滤GROUP BY结果的使用技巧和注意事项,需要的朋友参考一下 示例 HAVING子句过滤GROUP BY表达式的结果。注意:以下示例使用的是Library示例数据库。 例子: 返回写了不止一本书的所有作者(在线示例)。 返回作者超过三名的所有书籍(实时示例)。            

  • 我有一个场景,我需要提取多个数据库表数据,包括模式和组合(组合数据)他们,然后写到xl文件?