窗口函数-Dense_RANK

0kjbasz6  于 2022-09-18  发布在  Java
关注(0)|答案(1)|浏览(151)

我的要求是:“最多的电影是哪一年上映的?”下面的查询运行良好

  1. SELECT release_year, count(film_id)
  2. from film
  3. GROUP BY release_year
  4. ORDER BY count(film_id) DESC
  5. LIMIT 1;

结果:

  1. +--------------+----------------+
  2. | release_year | count(film_id) |
  3. +--------------+----------------+
  4. | 2017 | 110 |
  5. +--------------+----------------+

但这个查询的问题是,如果相同,则为否。在2016年上映的电影中(假设),我不会得到这一点,除非我提到限制2(同样,我可能不知道限制价值)。所以我尝试使用**Dense_RANK()**窗口函数,但我无法这样做。

请建议如何查询dense_rank()

dhxwm5r4

dhxwm5r41#

  1. WITH
  2. cte AS (
  3. SELECT release_year,
  4. COUNT(film_id) cnt,
  5. DENSE_RANK() OVER (ORDER BY COUNT(film_id) DESC) drnk
  6. FROM film
  7. GROUP BY release_year
  8. )
  9. SELECT release_year, cnt
  10. FROM cte
  11. WHERE drnk = 1;

相关问题