<legend id='2UcaQ'><style id='2UcaQ'><dir id='2UcaQ'><q id='2UcaQ'></q></dir></style></legend>
      • <bdo id='2UcaQ'></bdo><ul id='2UcaQ'></ul>
    1. <tfoot id='2UcaQ'></tfoot>
    2. <small id='2UcaQ'></small><noframes id='2UcaQ'>

      <i id='2UcaQ'><tr id='2UcaQ'><dt id='2UcaQ'><q id='2UcaQ'><span id='2UcaQ'><b id='2UcaQ'><form id='2UcaQ'><ins id='2UcaQ'></ins><ul id='2UcaQ'></ul><sub id='2UcaQ'></sub></form><legend id='2UcaQ'></legend><bdo id='2UcaQ'><pre id='2UcaQ'><center id='2UcaQ'></center></pre></bdo></b><th id='2UcaQ'></th></span></q></dt></tr></i><div id='2UcaQ'><tfoot id='2UcaQ'></tfoot><dl id='2UcaQ'><fieldset id='2UcaQ'></fieldset></dl></div>

    3. SQL:获取一列和相应其他列的最大值

      时间:2023-09-18
      <tfoot id='eZkFa'></tfoot>

        <i id='eZkFa'><tr id='eZkFa'><dt id='eZkFa'><q id='eZkFa'><span id='eZkFa'><b id='eZkFa'><form id='eZkFa'><ins id='eZkFa'></ins><ul id='eZkFa'></ul><sub id='eZkFa'></sub></form><legend id='eZkFa'></legend><bdo id='eZkFa'><pre id='eZkFa'><center id='eZkFa'></center></pre></bdo></b><th id='eZkFa'></th></span></q></dt></tr></i><div id='eZkFa'><tfoot id='eZkFa'></tfoot><dl id='eZkFa'><fieldset id='eZkFa'></fieldset></dl></div>

            • <bdo id='eZkFa'></bdo><ul id='eZkFa'></ul>
            • <legend id='eZkFa'><style id='eZkFa'><dir id='eZkFa'><q id='eZkFa'></q></dir></style></legend>

                <tbody id='eZkFa'></tbody>

                <small id='eZkFa'></small><noframes id='eZkFa'>

                本文介绍了SQL:获取一列和相应其他列的最大值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                ID|  tag  |  version
                -----+-----+-----
                1|  A  |  10
                2|  A  |  20
                3|  B  |  99
                3|  C  |  30
                3|  F  |  40
                

                期望的输出:

                1 A 10
                2 A 20
                3 B 99
                

                如何获取每个 ID 的最大版本以及该版本的相应标签?速度很重要(我有大约 28m 行),所以嵌套的 Select 不会这样做.此外,一个带有 max(version) 的简单 Group by ID 也不起作用,因为我还需要版本为 max 的相应标签.

                How can I get the max version of every ID and the corresponding tag for that version? Speed is important (I have around 28m rows) so a nested Select won't do it. Also a simple Group by ID with a max(version) doesn't work because I also need the corresponding Tag where the version is max.

                推荐答案

                使用 ROW_NUMBER() :

                SELECT s.id,s.tag,s.version FROM (
                    SELECT t.*,
                           ROW_NUMBER() OVER(PARTITION BY t.id ORDER BY t.version DESC) as rnk
                   FROM YourTable t) s
                WHERE s.rnk = 1
                

                这篇关于SQL:获取一列和相应其他列的最大值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:我如何转换“遗产"?Oracle中的左外连接语句? 下一篇:从 SQL 表在 SQL 中创建数据透视图

                相关文章

                <i id='NWgyH'><tr id='NWgyH'><dt id='NWgyH'><q id='NWgyH'><span id='NWgyH'><b id='NWgyH'><form id='NWgyH'><ins id='NWgyH'></ins><ul id='NWgyH'></ul><sub id='NWgyH'></sub></form><legend id='NWgyH'></legend><bdo id='NWgyH'><pre id='NWgyH'><center id='NWgyH'></center></pre></bdo></b><th id='NWgyH'></th></span></q></dt></tr></i><div id='NWgyH'><tfoot id='NWgyH'></tfoot><dl id='NWgyH'><fieldset id='NWgyH'></fieldset></dl></div>
                <tfoot id='NWgyH'></tfoot>

                    <bdo id='NWgyH'></bdo><ul id='NWgyH'></ul>
                  <legend id='NWgyH'><style id='NWgyH'><dir id='NWgyH'><q id='NWgyH'></q></dir></style></legend>

                  1. <small id='NWgyH'></small><noframes id='NWgyH'>