【问题标题】:Getting duplicate records to show in same row获取重复记录以显示在同一行中
【发布时间】:2017-06-23 20:47:20
【问题描述】:

您好,我有一张表格,上面有电影名称、上映日期、成本和收入。我正在尝试编写一个查询来显示每月发行了多少部电影

CREATE TABLE movies_200249154(

movieName VARCHAR(30),
releaseDate DATE,
costInMillions INT (20),
revenueInMillions INT (20)

); 

上面是我的桌子

这是我当前的查询

SELECT DISTINCTROW (monthname(releaseDate)) AS 'Month released', COUNT(*)movieName
FROM movies_200249154
GROUP BY movieName;

现在我的查询将显示月份和电影的计数(始终为 1)并显示重复。如果我使用 SELECT DISTINCT 它每月只显示 1 部电影。似乎忘记了其他数据。

我的查询需要显示月份和该月发行的电影数量。例如,它当前重复 June 4 次,计数为 1。我需要的查询将显示 June,计数为 4。

非常感谢任何帮助

【问题讨论】:

  • MySQL SQL-Server 是哪个?并且根据解决方案...您按电影名称分组,因此每部电影的信息都将位于单独的行中。自从您每月计算电影以来,您需要按月分组。此外,在这种情况下执行 group by 时,您不需要 distinct。仅当您需要真正消除的结果集中有重复数据时,才应使用 IMO distinct;否则,当使用聚合时,您只需要一个分组依据。

标签: mysql sql-server select


【解决方案1】:

您可以使用 MySQL 的MONTH 函数和group bycount 来获取所需的值,例如:

SELECT MONTH(releaseDate), count(*)
FROM movies
GROUP BY MONTH(releaseDate);

【讨论】:

  • @AM 如果对您有帮助,您可以接受正确的答案。
猜你喜欢
  • 2017-04-01
  • 2012-10-29
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
相关资源
最近更新 更多