gpt4 book ai didi

sql - 获取特定列中具有最高值的不同值

转载 作者:行者123 更新时间:2023-12-01 09:24:54 25 4
gpt4 key购买 nike

如何在 SQL 中从下表中获取突出显示的行? (根据最高版本的用户名突出显示不同的行)

enter image description here

如果您需要纯文本表格:

+----+-----------+---+
| 1 | John | 1 |
+----+-----------+---+
| 2 | Brad | 1 |
+----+-----------+---+
| 3 | Brad | 3 |
+----+-----------+---+
| 4 | Brad | 2 |
+----+-----------+---+
| 5 | Jenny | 1 |
+----+-----------+---+
| 6 | Jenny | 2 |
+----+-----------+---+
| 7 | Nick | 4 |
+----+-----------+---+
| 8 | Nick | 1 |
+----+-----------+---+
| 9 | Nick | 3 |
+----+-----------+---+
| 10 | Nick | 2 |
+----+-----------+---+
| 11 | Chris | 1 |
+----+-----------+---+
| 12 | Nicole | 2 |
+----+-----------+---+
| 13 | Nicole | 1 |
+----+-----------+---+
| 14 | James | 1 |
+----+-----------+---+
| 15 | Christine | 1 |
+----+-----------+---+

到目前为止我所拥有的是(适用于一个用户)

SELECT USER, VERSION 
FROM TABLE
WHERE USER = 'Brad'
AND VERSION = (SELECT MAX(VERSION ) FROM TABLE WHERE USER= 'Brad')

最佳答案

SELECT USER, max(VERSION) VERSION
FROM TABLE GROUP BY USER;

如果您需要身份证,那么

SELECT ID, USER, VERSION FROM (
SELECT ID, USER, VERSION,
RANK() OVER(PARTITION BY USER ORDER BY VERSION DESC) RNK
FROM TABLE
) WHERE RNK = 1;

如果你有

| 2  | Brad      | 5 |
+----+-----------+---+
| 3 | Brad | 3 |
+----+-----------+---+
| 4 | Brad | 5 |

带有 RANK 的查询为您提供两个用户

| 2  | Brad      | 5 |
+----+-----------+---+
| 4 | Brad | 5 |

如果您只需要一行,请将 RANK() 替换为 ROW_NUMBER()

在您的查询中,您使用 AND VERSION = (SELECT MAX(VERSION) FROM TABLE WHERE USER= 'Brad') 这相当于 RANK()(所有具有最大 VERSION 的行)

关于sql - 获取特定列中具有最高值的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26764825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com