首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何不使用聚合函数来限制它

如何不使用聚合函数来限制它
EN

Stack Overflow用户
提问于 2016-01-26 02:06:00
回答 2查看 130关注 0票数 0

假设我有一张这样的桌子(是的,我是个特里克).

代码语言:javascript
复制
CREATE TABLE starship_first_contacts (
  first_contact_id ID,
  starship_code CHAR,
  first_contact_species VARCHAR (40),
  first_contact_date DATE);

我想看看有多少艘船有超过10个第一次接触,所以我写了一个这样的SQL。

代码语言:javascript
复制
select count(*), 
       starship_code
from starship_first_contacts 
group by starship_code
having count (*) > 10

但是,如果我想看看那些第一次接触者超过10个的船只是什么,SQL会是什么样的呢?

理想情况下,在结果集中,我想要一个starship_codes列表,以及他们每个人做了多少次第一次接触,只想要超过10次的接触。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-26 03:27:16

有多少艘船第一次接触过10艘船?

代码语言:javascript
复制
select count(*)
from (select starship_code
    from starship_first_contacts 
    group by starship_code
    having count (*) > 10
    ) as active

第一次接触超过10次的船只是什么?

代码语言:javascript
复制
select starship_code
from starship_first_contacts 
group by starship_code
having count (*) > 10

注意,第一种使用第二种。看起来,您可能认为必须用第一个查询来编写第二个查询,但情况正好相反。

理想情况下,在结果集中,我想要一个starship_codes列表,以及他们每个人做了多少次第一次接触,只想要超过10次的接触。

这就是你现在问题中的问题:

从starship_first_contacts组中选择count (*),starship_first_contacts组中有计数(*)> 10的starship_code

票数 1
EN

Stack Overflow用户

发布于 2016-01-26 04:04:06

正确的答案是“我想看看有多少艘船有10多个第一次接触,所以我写了一个这样的SQL”可能是这样的。

代码语言:javascript
复制
select count(*)
From (
  Select
   starship_code
  from starship_first_contacts 
  group by starship_code
  having count (*) > 10
) d

但是,您的第二个问题的答案是您发布的

代码语言:javascript
复制
select count(*), 
   starship_code
from starship_first_contacts 
group by starship_code
having count (*) > 10
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35005931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档