[英]SQL query to get the rows count
我有一個表包含3列sID , sUID , parentSUID ,數據如下:
*sID* | *sUID* | *parentSUID*
----------------------------------
sID1 | sUID1 | null
sID1 | sUID2 | null
sID1 | sUID3 | psUID2
sID1 | sUID4 | psUID2
sID2 | sUID5 | null
sID2 | sUID6 | psUID5
我想獲得所有沒有父項的sUID和每個父項的子項數,結果應該是這樣的。
*sID* | *sUID* | *count*
----------------------------------
sID1 | sUID1 | 0
sID1 | sUID2 | 2
sID2 | sUID5 | 1
我寫了一個查詢,但它給了我沒有count列的結果,我不知道如何管理它。
SELECT p.sID, p.sUID, count(c.sUID)
FROM a189 p left outer join a189 c on 'p' + p.sUID = c.ParentSUID
where p.ParentSUID is null
group by p.sID, p.sUID
除了使用group by之外,子查詢是另一種選擇。
SELECT p.sID, p.sUID, (select count(1) FROM a189 c where 'p' + p.sUID = c.ParentSUID)
FROM a189 p
where p.ParentSUID is null
結果:
sID sUID Count
sID1 sUID1 0
sID1 sUID2 2
sID2 sUID5 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.