让我先给你看一个简单的表格:
| 因|交易方标识|版本|
| - -|- -|- -|
| 第00020222号|第00020107号|第0001页|
| 第00006692号|第00006693号|小行星0025|
| 小行星00021768|第00006693号|小行星0006|
| 小行星00024726|第00006693号|第0001页|
| 小行星00024727|第00006693号|千|
| 第00006691号|第00006692号|小行星0018|
| 00021949年|第00006692号|千|
| 小行星00024728|第00006692号|千|
| 小行星00024928|第00006692号|千|
| 第00013670号|00013671号|千|
| 小行星00027865| 00013671号|千|
| 小行星00029716| 00013671号|0001|
|00029732|00013671|0001|
| 小行星00029749| 00013671号|千|
查看值“00006693”。我必须从ver列中获取最大值:在本例中,这将是'0025'。但是,如果列中的所有值都相同,则我必须从inr列中获取最大值。在本例中,这将是'00024727'。最终结果应如下所示:
| 因|交易方标识|版本|
| - -|- -|- -|
| 第00020222号|第00020107号|第0001页|
| 第00006692号|第00006693号|小行星0025|
| 第00006691号|第00006692号|小行星0018|
| 小行星00029732|00013671| 第0001页|
我的问题是,如何通过使用两个max()函数来获得这些数据?我不擅长分析问题。
我还将添加一个图像,其中描述了问题(我认为)更好,请根据它:
2条答案
按热度按时间pcww981p1#
我可以提供两种选择。简单的解决方案-只需在party_id组中按“ver desc,inr desc”排序:
第二个解决方案更详细,但直接实现您的逻辑:
dfddblmv2#
我认为在一个select语句中是不可行的,因为窗口函数有其局限性,但是您需要的可以通过包含用于排序的**ROW_NUMBER()**函数的子查询来解决: