Mysql 子查询未在Select中聚合
我有这样一句话:Mysql 子查询未在Select中聚合,mysql,group-by,subquery,Mysql,Group By,Subquery,我有这样一句话: SELECT p.WPD, count(b.PID) as ParcelsPerBlck, (SELECT count(PID) FROM bos05eb WHERE ptype BETWEEN 009 AND 133) as ResdOnly FROM ebos_parcels05 p, bos05eb b WHERE p.PID_LONG = b.PID GROUP BY p.WPD; 我希望select语句中的子查询结果也按p.WPD分组。但我在每一行中得到的
SELECT p.WPD, count(b.PID) as ParcelsPerBlck,
(SELECT count(PID)
FROM bos05eb
WHERE ptype BETWEEN 009 AND 133) as ResdOnly
FROM ebos_parcels05 p, bos05eb b
WHERE p.PID_LONG = b.PID
GROUP BY p.WPD;
我希望select语句中的子查询结果也按p.WPD分组。但我在每一行中得到的查询结果如下:
WPD ParcelsPerBlck ResdOnly
01-02-030 38 6198
01-08-035 56 6198
01-04-060 11 6198
等等
子查询的结果是否可以不分组,以便我只重新获得每行的子查询结果计数 您可以对此使用条件聚合,而无需相关子查询:
select
p.WPD,
count(b.PID) as ParcelsPerBlck,
sum(case when b.ptype between 009 AND 133 then 1 else 0 end) as ResdOnly
from
ebos_parcels05 p
join
bos05eb b on p.PID_LONG = b.PID
group by
p.WPD
请注意显式的join
语法的用法——在from
子句中不需要使用逗号