SQL使用0行从何处作为0行分组,而不是不分组
这是我的桌子 我正在使用下一个查询SQL使用0行从何处作为0行分组,而不是不分组,sql,group-by,count,Sql,Group By,Count,这是我的桌子 我正在使用下一个查询 SELECT XFailTbl.id, xfail, yfail FROM (SELECT Count(*) AS XFail, [id] FROM [table] WHERE ( x < xmin OR x > xmax ) GROUP BY [id]) AS XFail
SELECT XFailTbl.id,
xfail,
yfail
FROM (SELECT Count(*) AS XFail,
[id]
FROM [table]
WHERE ( x < xmin
OR x > xmax )
GROUP BY [id]) AS XFailTbl
JOIN (SELECT Count(*) AS YFail,
[id]
FROM [table]
WHERE ( y < ymin
OR y > ymax )
GROUP BY [id]) AS YFailTbl
ON XFailTbl.id = YFailTbl.id
我得到了下一个结果
我的预期结果是
我知道我不能使用YYMax的条件,因为我将0行发送给group by,而它无法计算0行,因为它不知道它存在
但是怎样才能得到预期的结果呢?我不知道
谢谢您只需要条件聚合:
select id,
sum(case when X < Xmin or X > XMax then 1 else 0 end) as xfail,
sum(case when Y < Ymin or Y > YMax then 1 else 0 end) as yfail
from
group by id;
您只需要条件聚合:
select id,
sum(case when X < Xmin or X > XMax then 1 else 0 end) as xfail,
sum(case when Y < Ymin or Y > YMax then 1 else 0 end) as yfail
from
group by id;