如何对重复项求和 SQL/PSQL

How to sum duplicates SQL/PSQL

我对如何构建一个查询来计算所有重复项的总和有一些问题,在下面的这个查询中我可以计算所有出现的次数。


SELECT COUNT (*) occurrences
FROM back.submission s
GROUP BY s.name
HAVING COUNT(*) > 1 
----------
|# |occurrences|
|1 |     9     |
|2 |     6     |
|3 |     5     |
|4 |     4     |
|5 |     4     |
|6 |     3     |
....

我想知道如何对所有出现的事件求和,我尝试将计数放在 SUM 中,但它不起作用

SELECT #,count(*) As Total FROM back.submission GROUP BY # HAVING COUNT(*) > 1;

是否需要其他聚合级别?

SELECT COUNT(occurences) AS count_of_duplicates, SUM(occurences) AS sum_of_duplicates
FROM (
    SELECT COUNT (*) occurrences
    FROM back.submission s
    GROUP BY s.name
    HAVING COUNT(*) > 1 
) t
With CTE
As
(
Select [#],Count([*]) As Total From back.submission Group By [#]
)
select [#],Total From CTE Where Total>1