MYSQL中的SUM(子查询)

xesrikrc  于 2023-02-07  发布在  Mysql
关注(0)|答案(4)|浏览(152)

基本上,我正在尝试以下方法:

SELECT m.col1, SUM(SELECT col5 FROM table WHERE col2 = m.col1)
FROM table AS m

这好像不行,有办法吗?

41zrol4v

41zrol4v1#

你为什么不这样做:

SELECT m.col1, (SELECT SUM(col5) FROM table WHERE col2 = m.col1)
FROM table AS m
bihw5rsg

bihw5rsg2#

是-使用连接

SELECT m.col1, SUM(j.col5) FROM table AS m 
       JOIN table AS j ON j.col2 = m.col1 GROUP BY m.col1
owfi6suc

owfi6suc3#

Sum在第二个select中使用,我们想对列求和。如果col2列存在于表m中,那么它可能是不明确的列。

SELECT
    m.col1,
    (SELECT SUM(t.col5) FROM table AS t WHERE t.col2 = m.col1) AS sumcol
FROM table AS m
tquggr8v

tquggr8v4#

另一种解决方案是将子查询括在附加的括号中

SELECT m.col1, SUM((SELECT col5 FROM table WHERE col2 = m.col1))
FROM table AS m

在我的情况下,这解决了它。
MySQL文档(13.2.15 Subqueries)也指出:
子查询必须始终出现在括号内。

相关问题