2016-11-16 2 views
0

я использую, чтобы использовать следующую группу с помощью запроса, чтобы удалить избыточные операции (де боян):Агрегатная функция в группе К п

SELECT 
    optimized_transaction_date, 
    cobrand_id, 
    merchant_name, 
    Description, 
    UNIQUE_MEM_ID, 
    Amount, 
    distinct_count as members, 

    into xx 
    FROM yy 
    WHERE xx) 



GROUP BY optimized_transaction_date , 
     cobrand_id , 
     merchant_name, 
     Description , 
     UNIQUE_MEM_ID , 
     Amount, 
     members 

Однако я добавил некоторые агрегатные функции, я хотел бы применить:

SELECT 
    optimized_transaction_date, 
    cobrand_id, 
    merchant_name, 
    Description, 
    UNIQUE_MEM_ID, 
    Amount, 
    distinct_count as members, 
    Amount/members as calc, 
    cast(count(amount) as DOUBLE PRECISION)/members as count 


    into xx 
    FROM yy 
    WHERE xx) 


    GROUP BY optimized_transaction_date , 
      cobrand_id , 
      merchant_name, 
      Description , 
      UNIQUE_MEM_ID , 
      Amount, 
      members 
      calc 

Проблема вычисляется, и особенно счет теперь возвращает суммы/счета, которые включают избыточные транзакции. Например, поле count вернет значение x2 других строк при дублировании транзакции. Как написать мой запрос, чтобы он только возвращал calc/count POST в группу (деактивирован для дублирования транзакций).

Благодаря

ответ

0

Обычно не представляется возможным использование псевдонима в группе (https://www.postgresql.org/message-id/7608.1259177709%40sss.pgh.pa.us) , чтобы вы могли повторить Orginal значение

SELECT 
    optimized_transaction_date, 
    cobrand_id, 
    merchant_name, 
    Description, 
    UNIQUE_MEM_ID, 
    Amount, 
    distinct_count as members, 
    Amount/members as calc, 
    cast(count(amount) as DOUBLE PRECISION)/members as count 


    into xx 
    FROM yy 
    WHERE xx) 


    GROUP BY optimized_transaction_date , 
      cobrand_id , 
      merchant_name, 
      Description , 
      UNIQUE_MEM_ID , 
      Amount, 
      distinct_count 
      (Amount/distinct_count) 
Смежные вопросы