Oracle Группировка по столбцу внутри подзапроса - PullRequest
0 голосов
/ 24 февраля 2020

Я работаю с запросом в oracle, запрос возвращает значения правильно. это запрос.

select max(ids) as IDTRX, monto, saldo, DE31, thekey, tipotrx
    from (select t.*,
         t.SID as ids,
         (TO_NUMBER(SUBSTR(P.P1204, 5, 12))) as monto,
         ((TO_NUMBER(SUBSTR(P.P1204, 5, 12)) * (TO_NUMBER(SUBSTR(t.EXTRA_INFO, 13,2)) - TO_NUMBER(SUBSTR(P.P1204, 3,2))))) as saldo,
         (TO_CHAR(t.DATE_TRX, 'YYMMDD') || t.AUTH_CODE || t.TRANSAC_AMOUNT || t.CARD_NUMBER) as thekey,
         t.EXTRA_INFO AS DE31,
         TO_NUMBER(SUBSTR(t.EXTRA_INFO, 12, 1)) as tipotrx
         from TBL_TRX t LEFT JOIN TBL_PRS P ON (t.SID = P.TRANSACT) 
         )t
         group by thekey, monto, saldo, DE31, tipotrx
         order by max(ids) desc;   

он работает и отображает все данные

enter image description here

Как можно сгруппировать результаты, которые разделить один и тот же "tipotrx", на рисунке 6, как я могу сосчитать все строки, которые имеют 6 и сгруппировать их?

я пробовал группировать по tipotrx, но он показывает все.

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Вы можете использовать CTE или подзапрос:

with q as (
      <your query here>
     )
select tiprotx, count(*)
from t
group by tiprotx;
0 голосов
/ 24 февраля 2020

Я не очень хорошо понимаю Ваш запрос, потому что вы указали псевдоним t для команды select и псевдоним t для таблицы TBL_TRX.

Невозможно дать точный ответ, но вы должны попробовать:

COLUMNS... OVER (PARTITION BY thekey, monto, saldo, DE31, tipotrx)

Вместо группировки по.

Попробуйте выполнить команду OVER - PARTITION BY и выполните тесты, и вы найдете решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...