首页 > 解决方案 > SQL 分区查询输出不正确

问题描述

我有一个表,其初始值为:

+---------------------------------------+
| Entity  Country   Month_No.   Reports |
+---------------------------------------+
| FC        US         10          2    |
| FC        US         10          3    |
| FC        GER        10          4    |
| FC        GER        10          7    |
| FC        US         11          5    |
| FC        GER        11          8    |
+---------------------------------------+

我尝试使用以下代码在此表上运行查询:

SELECT entity, country, mnth, SUM(reports) OVER (PARTITION BY mnth) FROM practice1;

我从这段代码得到的输出是:

+---------------------------------------+
| Entity  Country   Month_No.   Reports |
+---------------------------------------+
| FC        US         10          16   |
| FC        US         10          16   |
| FC        GER        10          16   |
| FC        GER        10          16   |
| FC        US         11          13   |
| FC        GER        11          13   |
+---------------------------------------+

预期的输出应该是这样的:

+---------------------------------------+
| Entity  Country   Month_No.   Reports |
+---------------------------------------+
| FC        US         10          5    |
| FC        GER        10          11   |
| FC        US         11          5    |
| FC        GER        11          8    |
+---------------------------------------+

我如何将其作为输出?

标签: sql

解决方案


您的问题可以通过简单的方式解决group by

SELECT entity, country, mnth, SUM(reports) 
FROM practice1
GROUP BY entity, country, mnth

推荐阅读