选择不带分组依据的最大值

5cnsuln7  于 2021-07-26  发布在  Java
关注(0)|答案(3)|浏览(280)

这个问题在这里已经有了答案

sql最大值(日期),无分组依据(1个答案)
11个月前关门了。
我需要帮助获得每个id的最大值。简单的表如下所示,

ID        Value      
---------------
111        150         
112        110         
111        100         
113        120         
115        130     
111        180
112        190

我也希望在输出中看到:

ID        Value      
---------------
111        180       
112        190        
111        180        
113        120        
115        130 
111        180
112        190

我不想按每个id分组,我希望输出中包含所有id。

bmp9r5qi

bmp9r5qi1#

我想你需要窗口功能:

select t.*, max(value) over (partition by id) as max_id
from t;

这就回答了问题。我不确定样本数据和这个问题有什么关系。

jdzmm42g

jdzmm42g2#

您还可以在选择列表中关联子查询:

SELECT
    id,
    (SELECT
        max(value)
    FROM
        tbl t2
    WHERE
        t2.id = t1.id) AS value
FROM
    tbl t1
kmynzznz

kmynzznz3#

如果您不想使用 MAX 然后你就可以使用 NOT EXISTS 具体如下:

SELECT Y.ID, R.VALUE
FROM YOUR_TABLE Y
JOIN ( SELECT DISTINCT ID, VALUE
         FROM YOUR_TABLE T
        WHERE NOT EXISTS ( SELECT 1
                             FROM YOUR_TABLE TT
                            WHERE TT.ID = T.ID
                              AND TT.VALUE > T.VALUE
                         ) 
     ) R ON Y.ID = R.ID

相关问题