2016-03-08 3 views
1

Мне нужен запрос, который будет подсчитывать количество строк и общее количество столбцов, я нашел способ рассчитать количество столбцов, но не получить количество строк.оракул общий общий ряд и столбец мудрый?

select nvl(to_char(R.LTHT_FLAG), 'total') as a, 
SUM(CASE WHEN p.STATUS_CODE='0' OR p.STATUS_CODE='1' THEN 1 ELSE 0 END) K, 
SUM(CASE WHEN p.STATUS_CODE='2' THEN 1 ELSE 0 END) W, 
SUM(CASE WHEN p.STATUS_CODE='4' THEN 1 ELSE 0 END) C, 
SUM(CASE WHEN p.STATUS_CODE='6' THEN 1 ELSE 0 END) R 
from WORKASSIGNMENT P,RESOURCES R WHERE P.EMP_CODE=R.EMP_CODE 
group by rollup (R.LTHT_FLAG); 

Результат следующего запроса - это счетчик столбцов, который подобен.

A   K W C  R Total 
DEVELOPMENT 1 18 397  0  ? 
HT   43 21 673  0  ? 
LT  83 14 7955 60  ? 
SLD  306 9 4621 24  ? 
---------------------------------------- 
total 433 62 13646 84  ? 

, но теперь я хочу грести мудрый подсчет для этого выхода

Пожалуйста, помогите мне, чтобы получить сумму рядам

ответ

0

Просто добавьте все столбцы, чтобы получить в общей сложности для каждой строки.

Например,

SQL> WITH sample_data AS(
    2 SELECT 'DEVELOPMENT' A, 1 k, 18 w, 397 c, 0 r FROM dual UNION ALL 
    3 SELECT 'HT' A, 43 k, 21 w, 673 c, 0 r FROM dual UNION ALL 
    4 SELECT 'LT' A, 83 k, 14 w, 7955 c, 60 r FROM dual UNION ALL 
    5 SELECT 'SLD' A, 306 k, 9 w, 4621 c, 24 r FROM dual 
    6 ) 
    7 -- end of sample_data mimicking real table 
    8 SELECT t.*, k+w+c+r total FROM sample_data t; 

A     K   W   C   R  TOTAL 
----------- ---------- ---------- ---------- ---------- ---------- 
DEVELOPMENT   1   18  397   0  416 
HT     43   21  673   0  737 
LT     83   14  7955   60  8112 
SLD    306   9  4621   24  4960 

SQL> 

Выше, вместо sample_data, перевести текущий SQL как подзапроса в ЕКОМ.

+0

Как я понял эту концепцию, я не понял какой-либо код выше, пожалуйста, упростите немного, не указывайте значения жесткого ядра – suhas

+0

В вашем запросе вы получаете столбцы 'k, w, c, r', make это как внутренний запрос, а во внешнем запросе просто добавьте эти столбцы. –

+0

Спасибо, что так много :) – suhas

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