【发布时间】:2021-01-11 08:42:12
【问题描述】:
我必须通过查询向子查询提供一组未选择的值
喜欢
| col_1 | col_2 | col_3 |
|---|---|---|
| 1 | a | 154 |
| 2 | a | 845 |
| 3 | b | 558 |
| 4 | c | 88 |
如果我这样做
SELECT col_2, COUNT(*) AS cnt FROM tb_1 GROUP BY col_2
我明白了:
| col_2 | cnt |
|---|---|
| a | 2 |
| b | 1 |
| c | 1 |
在这里,第一行包含 2 个 col_3 值 [154, 845]。我想将这些值传递给选择部分的子查询并获得结果。喜欢:
SELECT col_2
, (SELECT SUM(balance) FROM accounts WHERE id IN col_3) AS combined_balance
FROM tb_1
所以最终的输出看起来像
| col_2 | balance |
|---|---|
| a | 150 |
| b | 200 |
| c | 180 |
如果帐户表看起来像
| id | balance |
|---|---|
| 154 | 100 |
| 846 | 50 |
| 558 | 200 |
| 88 | 180 |
【问题讨论】:
-
请添加您想要的结果。 id 和 balance 是从哪里来的??
-
id 将是帐户表中的一列。 col_3 指的是该 ID (FK)。我真正想做的是,我想将非分组列的值(这意味着该列将在列中包含不同的值)传递给子查询。
-
欢迎来到 SO。
an unselected set of values是什么?请看Why should I provide an MCRE for what seems to me to be a very simple SQL query