如何在 Oracle 中使用 GROUP BY & MAX()?

  • 本文关键字:BY MAX GROUP Oracle sql oracle
  • 更新时间 :
  • 英文 :


我需要根据LVL、QT_ID和PRODUCT等最终结果准备一份报告。

我有以下条件是

  1. 需要按QT_ID和PRODUCT进行分组
  2. 每个QT_ ID的MAX(LVL)对于每个QT_

输入值低于

 -----------------------------
  LVL        QT_ID     PRODUCT    
 -----------------------------
   2          Q1       P1
   3          Q1       P2
   8          Q2       P1
   9          Q2       P2
 ----------------------------- 

预期结果低于

 -----------------------------
  LVL        QT_ID     PRODUCT    
 -----------------------------
   3          Q1       P1
   3          Q1       P2
   9          Q2       P1
   9          Q2       P2
 ----------------------------- 

我尝试过SQL查询

  SELECT MAX(LVL), QT_ID, PRODUCT FROM TMP_TEMP GROUP BY QT_ID, PRODUCT

我的查询结果低于

 -----------------------------
  LVL        QT_ID     PRODUCT    
 -----------------------------
   2          Q1       P1
   8          Q2       P1
   3          Q1       P2
   9          Q2       P2
 ----------------------------- 

有人可以帮助我使用上面的数据获得预期的输出吗?

注意:我不使用子查询或联接查询。

你可以试试这个:

SELECT t2.LVL, t1.QT_ID, t1.PRODUCT
FROM TMP_TEMP t1 
INNER JOIN
(
SELECT QT_ID,MAX(LVL) as LVL
FROM TMP_TEMP 
GROUP BY QT_ID
) t2 on t1.QT_ID=t2.QT_ID

最新更新