【问题标题】:Show only the First Row of a Query in Oracle在 Oracle 中只显示查询的第一行
【发布时间】:2020-02-05 05:50:40
【问题描述】:

此查询显示演员列表,以及他们在 1980 年到 2000 年期间在动作类电影中演出的次数。我只想获取第一行,但没有找到问题的答案。 此外,如果我的查询有更好的解决方案,请告诉我。

电影(CODFILM、标题、年份、类型) 演员(CODACTOR,姓名,姓氏) CAST (CODFILM,CODACTOR)

YEAR 类型是 Number,它是只写年份发布

SELECT CODACTOR, GENRE,count(CODACTOR) 
FROM FILM NATURAL JOIN CAST T
WHERE GENRE = 'Action' AND YEAR BETWEEN 1980 AND 2000 
GROUP BY CODACTOR,GENRE 
HAVING COUNT(CODACTOR) >= ALL( 
SELECT COUNT(CODACTOR) 
FROM FILM NATURAL JOIN CAST
WHERE GENRE = 'Action' AND CODACTOR = T.CODACTOR AND ANNO BETWEEN 1980 AND 2000) 
ORDER BY COUNT(CODACTOR) DESC;

【问题讨论】:

  • Oracle 版本?导致如果 12 或更高...将此附加到您的查询 - 仅获取前 1 行
  • 谢谢,它有效。

标签: sql oracle oracle12c


【解决方案1】:

将此添加到您的查询中

FETCH FIRST 1 ROWS ONLY

Docs

例子-

前 3 名带薪员工

这在数据库版本 12 及更高版本中可用。

下面你可以使用伪列,ROWNUM

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多