代码之家  ›  专栏  ›  技术社区  ›  Jona Chen

在多列上分区?

  •  0
  • Jona Chen  · 技术社区  · 3 年前

    我正在做一个个人项目,我有一个名为“电影”的表格,格式如下:

    电影标题 体裁 发布_年
    约翰·威克4 动作惊悚犯罪 2023

    我把它按流派分为下表,因为 我想统计一下每个发行年份创建的流派数量:

    电影标题 体裁 发布_年
    阿凡达 行动 2022
    阿凡达 冒险 2022
    阿凡达 科幻 2022
    蚁人 行动 2022
    蚁人 冒险 2022
    蚁人 科幻 2022
    约翰·威克4 行动 2023
    约翰·威克4 惊悚片 2023
    约翰·威克4 罪行 2023

    为了做到这一点,我尝试使用此查询按“Genre”和“Release_Year”两列对其进行分区:

    选择Genre,Count(Genre)OVER(Partition by Genre,Release_Year)作为Num_Genre,Relase_Year FROM电影

    我的预期结果如下表所示:

    体裁 数量(_G) 发布_年
    行动 2. 2022
    科幻 2. 2022
    冒险 2. 2022
    行动 1. 2023
    惊悚片 1. 2023
    罪行 1. 2023

    然而,当我运行该查询时,我最终会得到很多重复(相同类型、相同年份、相同计数),结果看起来是这样的:

    Results

    任何帮助都将不胜感激,谢谢!

    1 回复  |  直到 3 年前
        1
  •  0
  •   jbaptperez    3 年前

    使用 GROUP BY 聚合子句:

    SELECT
      Genre,
      COUNT(1) AS Num_genre,
      Release_Year
    FROM
      Movies
    GROUP BY
      Genre,
      Release_Year
    ;
    
    推荐文章