[英]Sub-Query not Aggregating in Select
我有这个选择语句:
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
等等。
子查询的结果可以不分组,这样我只能得到每行的子查询ResdOnly的结果计数吗?
您可以为此使用条件聚合,而无需相关子查询:
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
子句中使用逗号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.