Создайте запрос для выбора двух столбцов; (Компания, № фильмов) из базы данных - PullRequest
0 голосов
/ 29 марта 2012

Я создал базу данных в рамках университетского задания и столкнулся с вопросом в названии.

Скорее всего, меня просят выяснить, сколько фильмов сняла каждая компания. Который предлагает мне группу по запросу. Но я понятия не имею, с чего начать. Это только вопрос с двумя отметками, но синтаксис в моей голове не щелкает.

Моя схема:

CREATE TABLE Movie
    (movieID CHAR(3) ,
    title CHAR(36),
    year NUMBER,
    company CHAR(50),
    totalNoms NUMBER,
    awardsWon NUMBER,
    DVDPrice NUMBER(5,2),
    discountPrice NUMBER(5,2))

Есть и другие таблицы, но на первый взгляд я не думаю, что они имеют отношение к этому вопросу.

Я использую sqlplus10

Ответы [ 3 ]

4 голосов
/ 29 марта 2012

Ответ, который вам нужен, исходит из трех основных понятий SQL, и я расскажу о них вместе с вами. Если вам нужна дополнительная помощь для получения ответа из этих советов, дайте мне знать, и я постараюсь продолжать вас направлять.

Группировка по

Как вы упомянули, SQL предлагает функцию GROUP BY, которая может вам помочь.

SQL-запрос, использующий GROUP BY, будет выглядеть следующим образом.

SELECT list, fields, aggregate(value)
FROM tablename
--WHERE goes here, if you need to restrict your result set
GROUP BY list, fields

запрос GROUP BY может возвращать только поля, перечисленные в выражении group by, или агрегатные функции, действующие в каждой группе.


Агрегатные функции

Вашему домашнему вопросу также нужна функция Aggregate, которая называется Count. Это используется для подсчета возвращенных результатов. Простой запрос, подобный следующему, возвращает количество всех возвращенных записей.

SELECT Count(*)
FROM tablename

Их можно объединить, чтобы вы могли получить количество каждой группы следующим образом.

SELECT list, fields, count(*)
FROM tablename
GROUP BY list, fields

Псевдоним столбца

Другой ответ также пытался познакомить вас с псевдонимами столбцов SQL, но они не использовали синтаксис SQLPLUS.

SELECT Count(*) as count
...

Синтаксис псевдонима столбца SQLPLUS показан ниже.

SELECT Count(*) "count"
...
0 голосов
/ 29 марта 2012
Select company, count(*) AS count 
from Movie 
group by company

select * group by company не будет работать в Oracle.

0 голосов
/ 29 марта 2012

Я не собираюсь предоставлять вам SQL, а вместо этого способ думать об этом.

То, что вы хотите сделать, это выбрать, где компания соответствует, и подсчитать общее количество возвращенных строк. Это количество фильмов, снятых указанной компанией.

Надеюсь, это направит вас в правильном направлении.

...