假设我有一张这样的桌子(是的,我是个特里克).
CREATE TABLE starship_first_contacts (
first_contact_id ID,
starship_code CHAR,
first_contact_species VARCHAR (40),
first_contact_date DATE);我想看看有多少艘船有超过10个第一次接触,所以我写了一个这样的SQL。
select count(*),
starship_code
from starship_first_contacts
group by starship_code
having count (*) > 10但是,如果我想看看那些第一次接触者超过10个的船只是什么,SQL会是什么样的呢?
理想情况下,在结果集中,我想要一个starship_codes列表,以及他们每个人做了多少次第一次接触,只想要超过10次的接触。
发布于 2016-01-26 03:27:16
有多少艘船第一次接触过10艘船?
select count(*)
from (select starship_code
from starship_first_contacts
group by starship_code
having count (*) > 10
) as active第一次接触超过10次的船只是什么?
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
发布于 2016-01-26 04:04:06
正确的答案是“我想看看有多少艘船有10多个第一次接触,所以我写了一个这样的SQL”可能是这样的。
select count(*)
From (
Select
starship_code
from starship_first_contacts
group by starship_code
having count (*) > 10
) d但是,您的第二个问题的答案是您发布的
select count(*),
starship_code
from starship_first_contacts
group by starship_code
having count (*) > 10https://stackoverflow.com/questions/35005931
复制相似问题