Невозможно получить записи суммы макс. - PullRequest
0 голосов
/ 24 мая 2019

Я не могу получить общее количество последних записей, используя функцию Макс. Вот мой стол -

enter image description here

SELECT CUSTOMER, max(LAST_UPDATED) Latest_Date, SUM(TOTAL) Revenue
FROM CD_DATA
Group by CUSTOMER

Вот мой ожидаемый результат только записи с последней / максимальной датой -

CUSTOMER    LATEST_DATE REVENUE
ABC        12/31/2018   1015413

Вот мой текущий результат ниже, который включает все строки -

CUSTOMER    LATEST_DATE REVENUE
ABC         12/31/2018  1005126

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Я думаю, что это будет делать то, что вы хотите:

SELECT CUSTOMER, MAX(LAST_UPDATED) as Latest_Date, 
       SUM(TOTAL) KEEP (DENSE_RANK FIRST ORDER BY LAST_UPDATED DESC) as Revenue
FROM CD_DATA
GROUP BY CUSTOMER;

Тем не менее, я настороженно отношусь к Oracle и DATE s, потому что метка времени даты может иметь компонент времени. Итак, чтобы получить последнюю дату , вам может понадобиться:

SELECT CUSTOMER, MAX(LAST_UPDATED) as Latest_Date, 
       SUM(TOTAL) KEEP (DENSE_RANK FIRST ORDER BY TRUNC(LAST_UPDATED) DESC) as Revenue
FROM CD_DATA
GROUP BY CUSTOMER;

Или:

SELECT CUSTOMER, MAX(LAST_UPDATED),
       SUM(REVENUE)
FROM (SELECT d.*,
             RANK() OVER (PARTITION BY CUSTOMER ORDER BY TRUNC(LAST_UPDATED) DESC) as seqnum
      FROM CD_DATA d
     ) d
WHERE seqnum = 1
GROUP BY CUSTOMER;
0 голосов
/ 24 мая 2019

Вы можете попробовать ниже -

select * from tablename
where LATEST_DATE= (select max(LATEST_DATE) from tablename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...