首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: ORA-00905:缺少关键字

错误: ORA-00905:缺少关键字
EN

Stack Overflow用户
提问于 2017-07-25 16:23:26
回答 2查看 2.5K关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
select inventory.store_id as store_id,
       film.title as Titel_Film, 
        count(film.film_id) as Anz_ausleihbar
from film
join inventory on film.film_id = inventory.film_id
join (select rental.inventory_id, rental.return_date 
      from rental 
      group by rental.inventory_id) as rental2
on rental2.inventory_id = inventory.inventory_id
where film.title like '%B'
and inventory.store_id = 1
group by film.film_id
order by inventory.store_id asc, film.title desc

我得到错误: ORA-00905:缺少关键字。

感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2017-07-25 16:55:16

将您的GROUP BY更改为

代码语言:javascript
复制
GROUP BY store_id, Titel_Film 

使用group by时,需要为所有未汇总或聚合的字段指定“组字段”。

票数 0
EN

Stack Overflow用户

发布于 2017-07-25 20:58:09

  • 使用相关子查询而不是内联视图来根据租赁记录的存在来限制库存。Exists 通常比in运行更快,如果不需要返回数据,则比join更快。这还删除了表alias.
  • Eliminated Group by on inline view的as语句。
  • 修改了外部查询的group by,以包括

别名中的所有非聚合字段

代码语言:javascript
复制
SELECT I.store_id as store_id
     , f.title as Titel_Film
     , count(f.film_id) as Anz_ausleihbar
FROM film
INNER JOIN inventory I
  ON f.film_id = I.film_id
WHERE f.title like '%B'
  AND i.store_id = 1
  AND exists (SELECT * 
              FROM rental r2 
              WHERE r2.inventory_ID = i.inventory_ID)
GROUP BY I.store_id 
       , film.title 
ORDER BY i.store_id asc, f.title desc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45297749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档