2015-06-25 4 views
-4

Я новичок в SQL и мне сложно писать запрос на что-то. Скажем, у меня есть таблица (school_info), который выглядит следующим образом:SQL Query - Union Help Please

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

Я не знаю, если таблица для чтения, но в основном есть две категории (средняя школа и колледж), которые разделены на первокурсника, второкурсник , младший и старший. Я хочу знать, как я напишу SQL-запрос, чтобы выяснить, сколько учеников старшеклассников имеют маму до 40 лет, домашнее животное и 1 брат. Я не уверен, как объединиться в 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 by к первому запросу и удалить Student_ID или сделать Count (Distinct Student_ID) –

+0

@HolmesIV, вы правы. Я отредактирую это. – AdamMc331

+0

, что помогает, спасибо! – asdfgh