从查询到子查询的组中未选择的值
Posted
技术标签:
【中文标题】从查询到子查询的组中未选择的值【英文标题】:Unselected value from a group by query to subquery 【发布时间】: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
【参考方案1】:
您的方法是错误的,只需加入表格并汇总值
select col2,sum(balance)
from tb_1
join accounts a on a.id = tb_1.col3
group by col2;
【讨论】:
以上是关于从查询到子查询的组中未选择的值的主要内容,如果未能解决你的问题,请参考以下文章