mysql - JOIN SQL 函数结果与一张表中的多个 WHERE

标签 mysql sql join where-clause

我只有一个包含 4 列的表:A、B、C 和 D

我有一张 SUM 的表格所有 A-B 组合的 C。

SELECT 
A,
B,
SUM(C),
FROM Table
GROUP BY A, B

我有一张 AVG 的表格当 C = 1 时,所有 A-B 组合的 D 的值。

SELECT 
A,
B,
AVG(D),
FROM Table
WHERE C = 1
GROUP BY A, B

重新组合这些的最佳方式是什么 SELECT单个查询中的语句保留我的 GROUP BY A, B

我尝试RIGHT JOIN ... ON A.Table = A.Table AND B.Table = B.Table ,但这并没有完全奏效。

最佳答案

您可以通过条件聚合来做到这一点:

SELECT A, B, SUM(C),
       avg(case when C = 1 then D end)
FROM Table
GROUP BY A, B

关于mysql - JOIN SQL 函数结果与一张表中的多个 WHERE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19803049/

相关文章:

mysql - 在 SQL 中连接多个查询

当结果为零时显示聚合数据的 SQL 查询

mysql - 在 mysql 查询中使用来自 5 个不同表的数据

php - 正则表达式包含一个字段

mysql - 根据条件将行转为列

sql - 在 WHERE 子句中按 TO_CHAR() 过滤

mysql - 获取球队名称、胜利次数、比赛次数

php - 如何在 Codeigniter 中将文本文件中的制表符分隔数据导入 MySQL 数据库?

php - 从 2 个表中提取仅收集匹配项目的结果

sql - 为什么我的 SQL 函数返回意外值?