我已经创建了一个数据库作为大学作业的一部分,我遇到了标题中的问题。
更有可能的是,我被要求了解每家公司制作了多少部电影。这向我建议了一个group by查询。但是我不知道从哪里开始。这只是一个两分的问题,但语法在我的脑海中并不灵光。
我的方案是:
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
发布于 2012-03-30 01:18:33
如果您需要更多帮助来根据这些提示创建答案,请让我知道,我可以尝试继续指导您。
分组依据
SELECT list, fields, aggregate(value)
FROM tablename
--WHERE goes here, if you need to restrict your result set
GROUP BY list, fieldsgroup BY查询只能返回GROUP by语句中列出的字段,或者返回作用于每个组的聚合函数。
聚合函数
用于统计返回的结果。
SELECT Count(*)
FROM tablename这两者可以组合在一起,允许您通过以下方式获取每个组的计数。
SELECT list, fields, count(*)
FROM tablename
GROUP BY list, fields列别名
另一个回答也试图向您介绍SQL列别名,但它们没有使用SQLPLUS语法。
SELECT Count(*) as count
...SELECT Count(*) "count"
...发布于 2012-03-29 22:49:23
我不打算向您提供SQL,而是一种思考它的方式。
您要做的是选择公司匹配的位置,并计算返回的总行数。这个数字是由指定公司制作的电影数量。
希望这能为你指明正确的方向。
发布于 2012-03-29 22:51:36
Select company, count(*) AS count
from Movie
group by companyselect * group by company在甲骨文中不能工作。
https://stackoverflow.com/questions/9927772
复制相似问题