Query

SQL Developer 中的聚合查詢

  • May 28, 2020

在此處輸入圖像描述

以下是我的查詢。我收到一條錯誤消息。當我刪除沒有總和的欄位時,它會起作用。我添加了數據的螢幕截圖。謝謝!

SELECT  
   S.PRODUCT_ID, 
   SUM(DISTINCT S.AWARD_AMT),
   SUM(DISTINCT S.EST_AMT),
   SUM(PMT.PMT_AMT),
   S.CREATE_DT,
   S.APPROVE_BY,
   S.EVALUATOR 
FROM SALES S
   INNER JOIN INVOICE INV    
       ON  S.PRODUCT_ID = INVS.PRODUCT_ID
   INNER JOIN PAYMENTS PMT 
       ON INV.S.PRODUCT_ID = PMT.S.PRODUCT_ID 
           AND INV.SEQ_NO = PMT.SEQ_NO
WHERE CAST(CREATE_DT AS DATE)>='01-JAN-2014' 
   AND INV.STATUS_CD = 'CREATE' 
GROUP BY S.PRODUCT_ID
order by S.PRODUCT_ID

這是我的最後一個查詢。有效。我不得不刪除excel中的重複項

SELECT  
   S.PRODUCT_ID, 
   S.CREATE_DT,
   S.APPROVE_BY,
   S.EVALUATOR ,
   SUM(DISTINCT S.AWARD_AMT) OVER (PARTITION BY S.PRODUCT_ID) AS S.AWARD_AMT,
   SUM(DISTINCT S.EST_AMT) OVER (PARTITION BY S.PRODUCT_ID) AS EST_COST_TOT,
    SUM(PMT.LINE_AM PMT.PMT_AMT T) OVER (PARTITION BY OM.O_OMO_NO) AS TOTAL_PMT
FROM SALES S
   INNER JOIN INVOICE INV    
       ON  S.PRODUCT_ID = INVS.PRODUCT_ID
   INNER JOIN PAYMENTS PMT 
       ON INV.S.PRODUCT_ID = PMT.S.PRODUCT_ID 
           AND INV.SEQ_NO = PMT.SEQ_NO
WHERE CAST(CREATE_DT AS DATE)>='01-JAN-2014' 
   AND INV.STATUS_CD = 'CREATE' and SUBSTR(APPROVE_BY,1,3) IN ('PEP','SMI', 'MOP','3/4')
GROUP BY S.PRODUCT_ID
order by S.PRODUCT_ID

錯誤消息:ORA-00979:不是 GROUP BY 表達式 00979。00000 -“不是 GROUP BY 表達式” *原因:

*操作:行錯誤:1 列:91

假設您有下表 TAB(name,value)

name value
a        2
a        3
a        2
b        4
b        5
b        5
c        6
c        6
c        6

以下查詢的結果集是什麼

查詢1:

select name, sum(value)
from TAB
group by name
order by name

查詢2:

select name, sum(distinct value)
from TAB
group by name
order by name

查詢 3:

select name, value
from TAB
group by name
order by name

由於這被標記為oracle-sql-developer,我猜你在使用 SQL-Developer 來檢測和解決這個常見的語法問題時遇到了問題。

SQL-Developer 在有問題的語法下方用黃色波浪線突出顯示潛在的語法問題。SQL-Developer 將對主要語法錯誤使用洋紅色波浪線。 帶有黃色突出顯示的原始 SQL 語法錯誤

你的整個SELECT條款是黃色的;您的語句相關的語法有問題SELECT

如果您注意到,表格 ( invoice, payments) 也帶有黃色波浪線下劃線,那是因為我沒有您的表格。

最後的洋紅色波浪線表示我缺少分號。

現在您有了視覺線索,您可以將游標懸停在語法上,SQL-Developer 將彈出一個視窗並提出編輯建議。

彈出視窗

它並不總是正確的。但是,它應該告訴你你的語法有什麼問題。

如果需要,只需點擊彈出視窗中的藍色文本,SQL-Developer 就會為您進行更正。對於此範例,您必須更正更正。

引用自:https://dba.stackexchange.com/questions/268005