簡體   English   中英

在Oracle中分組

[英]Group By in Oracle

在Oracle中如何使用group by? 我已經嘗試了幾個小時,但我仍然不知道為什么我收到此錯誤。 原始sql是無處不在的。 我正在嘗試將其轉換為oracle。

我得到的錯誤是:

ORA-00904: "SHA": invalid identifier
00904. 00000 -  "%s: invalid identifier"

這是我的查詢:

SELECT 
  CASE 
    WHEN (pch + pk) > 999999999 
      THEN 'j-9999 and OVER' 
    WHEN (pch + pk) >= 1000000 
      THEN 'i-1, < 999'  
  END AS SHA,  
  SUM(pch + pk) AS TOTALSHA
FROM hold, pos  
WHERE  hold.ho = pos.pho AND (pch + pk) > 0 
GROUP BY SHA;

您無法對輸出值進行分組。 重復表達式:

SELECT 
  CASE 
    WHEN (pch + pk) > 999999999 
      THEN 'j-9999 and OVER' 
    WHEN (pch + pk) >= 1000000 
      THEN 'i-1, < 999'  
  END AS SHA,  
  SUM(pch + pk) AS TOTALSHA
FROM hold, pos  
WHERE  hold.ho = pos.pho AND (pch + pk) > 0 
GROUP BY CASE 
    WHEN (pch + pk) > 999999999 
      THEN 'j-9999 and OVER' 
    WHEN (pch + pk) >= 1000000 
      THEN 'i-1, < 999'  
  END;

或者,在子查詢中計算值並將結果分組:

SELECT
  SHA,
  SUM(pch + pk) AS TOTALSHA
FROM (
  SELECT 
    CASE 
      WHEN (pch + pk) > 999999999 
        THEN 'j-9999 and OVER' 
      WHEN (pch + pk) >= 1000000 
        THEN 'i-1, < 999'  
    END AS SHA,  
    pch,
    pk
  FROM hold, pos  
  WHERE  hold.ho = pos.pho AND (pch + pk) > 0 
) AS X
GROUP BY SHA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM