2013-10-15 3 views
1

Мой SQL-запрос:SQL Count возвращает неправильный результат

   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 

Вам не нужно использовать группу, так как это является аналитической функцией, а не агрегатная функция.

Смежные вопросы