Mysql 使用一个表中的多个WHERE连接SQL函数结果

Mysql 使用一个表中的多个WHERE连接SQL函数结果,mysql,sql,join,where,Mysql,Sql,Join,Where,我只有一个表,它有4列:a、B、C和D 对于所有a-B组合,我有一个C的和表 SELECT A, B, SUM(C), FROM Table GROUP BY A, B 当C=1时,我有一个关于所有a-B组合的D的AVG表 SELECT A, B, AVG(D), FROM Table WHERE C = 1 GROUP BY A, B 在单个查询中重新组合这些SELECT语句的最佳方法是什么 我试图右键加入。。。在A.Table=A.Table和B.Table=B.Table上,这并不

我只有一个表,它有4列:a、B、C和D

对于所有a-B组合,我有一个C的

SELECT 
A,
B,
SUM(C),
FROM Table
GROUP BY A, B
当C=1时,我有一个关于所有a-B组合的D的
AVG

SELECT 
A,
B,
AVG(D),
FROM Table
WHERE C = 1
GROUP BY A, B
在单个查询中重新组合这些
SELECT
语句的最佳方法是什么


我试图右键加入。。。在A.Table=A.Table和B.Table=B.Table上,这并不完全起作用。

您可以使用条件聚合:

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


非常感谢你的帮助
SELECT A, B,
    Sum(C) SumC,
    Sum(case C when 1 Then D else 0 end) /
    Sum(case C When 1 then 1 else 0 end)  AVGOfDForC1Rows,
FROM Table
GROUP BY A, B