2016-11-16 189 views
0

我用查詢中使用下面的一組以刪除冗餘數據(去重複):聚合函數By子句

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 

問題是calc,尤其是count現在返回包含冗餘事務的總和/計數。例如,當存在重複事務時,count字段將返回其他行的值x2。我如何編寫我的查詢,以便它只返回計算/計數POST組(由重複事務處理決定)。

感謝

回答

0

通常情況下是不可能的(https://www.postgresql.org/message-id/7608.1259177709%40sss.pgh.pa.us) 使用組的別名,所以你可以重複原單值

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) 
相關問題