2015-06-25 127 views
-4

我是新来的SQL,我很难写一个查询的东西。比方说,我有一个表(school_info),看起来像这样:SQL查询 - 联盟帮助请

     | High School   | College 
_________________________________________________________________________ 
Mom_Age | pet| sibling| fresh | soph | jun | sen |fresh |soph |jun |sen 
__________________________________________________________________________ 
<40  | yes|  1 | x? | 

我不知道如果表是可读的,但基本上有两类(高中,大学),这是由大一,大二分,大三和大四。我想知道如何编写一个SQL查询来找出有多少大一新生在40岁以下的妈妈,一个宠物和一个兄弟姐妹。我不确定如何在SQL中进行组合。

+1

你到现在为止的尝试? – HaveNoDisplayName

+1

我们需要看到实际的表结构,因为普通表不能在这里表示的细分,除非它们被拼合成列名。从'SHOW CREATE TABLE school_info'发布输出,以便我们可以看到真实的布局。 –

+0

我只知道如何逐列或逐行获取。我可以写一个关于有多少新生的查询,但我不知道如何写一个关于有多少高中新生的特征。 – asdfgh

回答

1

我首先做的就是谁满足您的条件学生名单:

SELECT student_id, category, year 
FROM studentTable 
WHERE mom_age < 40 AND sibling = 1 AND pet = 'yes'; 

一旦你有,你可以使用上面的子查询由(类别,年份)组得到你需要的计数:

SELECT category, year, COUNT(*) AS numStudents 
FROM studentTable 
WHERE mom_age < 40 AND sibling = 1 AND pet = 'yes' 
GROUP BY category, year; 
+0

这是正确的,但我不认为你需要子查询。你需要做的是,在Count(*)和Group到第一个查询并删除Student_ID或做一个Count(Distinct Student_ID) –

+0

@HolmesIV你是对的。我会编辑它。 – AdamMc331

+0

有帮助,谢谢! – asdfgh