【发布时间】:2021-12-22 09:41:42
【问题描述】:
我有一个要添加列的查询。它应该包含特定列的值在该表中出现的次数。
我目前的尝试
SELECT cleaning.*,
(SELECT COUNT(*)
FROM cleaning
WHERE column_b = cleaning.column_b)
AS multicleanamount
FROM cleaning
正在计算每一行,因为它只是将一列与同一列进行比较 - 我明白原因。 所以当前(错误)的结果是
| column_a | column_b | multicleanamount |
|---|---|---|
| 12 | 300 | 7 |
| 13 | 321 | 7 |
| 14 | 300 | 7 |
| 15 | 330 | 7 |
| 16 | 330 | 7 |
| 17 | 351 | 7 |
| 18 | 330 | 7 |
我现在缺少的是如何告诉子选择与第一行的cleaning.column_b 的当前值进行比较? (在cleaning.*中)
2bh 一开始在我的脑海中很容易,如果我将它与像 '300' 这样的静态值进行比较,但该表有 74 K 条目。这必须是动态的。
我想要的输出是
| column_a | column_b | multicleanamount |
|---|---|---|
| 12 | 300 | 2 |
| 13 | 321 | 1 |
| 14 | 300 | 2 |
| 15 | 330 | 3 |
| 16 | 330 | 3 |
| 17 | 351 | 1 |
| 18 | 330 | 3 |
我希望这是可以理解的。如果没有,请告诉我,我会尽量详细说明。
【问题讨论】:
-
感谢您重新格式化@Barmar
-
是否只是因为表格前后缺少空行?那也应该在预览中实现。在我发布问题之前它已正确显示。
-
我想你找到了一个功能