簡體   English   中英

子查詢未在選擇中聚合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM