簡體   English   中英

SQL查詢以獲取行數

[英]SQL query to get the rows count

我有一個表包含3列sIDsUIDparentSUID ,數據如下:

 *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.

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