2013-10-15 270 views
1

我的SQL查詢:SQL計數返回錯誤結果

   SELECT 
       TO_CHAR(se2.ID) S_ID, 
       TO_CHAR(se2.file_name) S_NAME, 
       TO_CHAR(pl.pid) P_ID, 
       count (*) COUNTER 
       FROM 
       pl 
       join po on po.id = pl.po_id 
       join ppl on po.fk_product_id = ppl.fk_product 
       join se on se.id = po.fk_product_id 
       join se2 on se2.id = ppl.fk_parent 
       WHERE 
       pl.project_id = 227739470 
       GROUP BY se2.ID, se2.file_name, pl.pid 

返回我16行,但每次結果行COUNT(*)是1! 我想獲得每條結果行中所有行的數量。 這裏有什麼問題?

+0

它應該是什麼?如果16行中的每一行只出現一次,那就是正確的。 – davek

+0

然後我有一些邏輯問題。我想要每個結果行中的所有行的數量 - >'16'... – frgtv10

回答

7

如果你想的每一行與在它的總行數列,然後使用:

count(*) over() total_rows 

你不需要通過,因爲這是一個解析函數,而不是使用一組集合函數。