我需要一个查询来计算表中重复项的总数,有什么办法可以做到这一点?
如果我有一个这样的表:
+------------+----------+
| item_name |quantity |
+------------+----------+
| Calculator | 89 |
| Notebooks | 40 |
| Pencil | 40 |
| Pens | 32 |
| Shirts | 29 |
| Shoes | 29 |
| Trousers | 29 |
+------------+----------+
我不能使用SELECT COUNT(quantity)
,因为它返回2.( 40 | 29
)
如何退回5?(40 | 40 | 29 | 29 | 29
)
使用分析功能:
WITH cte AS (
SELECT *, COUNT(*) OVER (PARTITION BY quantity) cnt
FROM yourTable
)
SELECT COUNT(*)
FROM cte
WHERE cnt > 1;
您的解决方案似乎有效,但我认为
SELECT COUNT(*)
应更改为SELECT SUM(cnt)
我不同意,至少如果您希望样本表中的计数为5。
是的,你是对的,我看错桌子了