sql - 仅由内部联接 SQL 中的 no_member 显示列表数据事务 MAX(transaction_id)
问题描述
我将 select 与 MAX 一起使用但无效,简单来说,我与 no_member 有数据事务相关
select a.no_member, b.trans_value, b.trans_id
from table1 a
inner join table2 b
on a.no_member=b.no_member
order by a.no_member;
节目
no_member trans_value trans_id
111 100000 1
111 200000 2
111 300000 3
222 150000 1
222 200000 2
333 300000 1
333 100000 2
333 500000 3
333 100000 4
就我而言,我只想为每个 no_member 显示 max(b.trans_id)
no_member trans_value trans_id
111 300000 3
222 200000 2
333 100000 4
需要建议,谢谢
解决方案
看来 table1 是不需要的。
select top 1 (with ties) b.*
from table2 b
order by dense_rank() over (partition by b.no_member order by b.trans_value desc) asc
术后评论编辑:当我想要最高/最低/等时,我通常喜欢使用两种查询“样式”。每一行的内容,您可以在链接中找到您的问题已被标记为重复的内容(此页面顶部的链接)。
第一个,是我在这里写的,select top 1 with ties
。这是 Josh Gilfillan 在重复链接中的回答,当您只有一张桌子时它很有用。
如果您有 2 个以上的表,那么答案应该是cross apply ( select top 1
,就像 ddp 的答案一样。在你的情况下,这将是这样的:
select (some columns),q.trans_value,q.trans_id
from
(some tables and joins)
cross apply
(
select top 1 b.trans_value,b.trans_id
from table2 b
where b.no_member=a.no_member -- Here you add all "join conditions" with the external tables
order by b.trans_value desc,b.trans_id asc -- what if two transactions have same value?
)as q
推荐阅读
- c# - 在 OVH 域上发布部署 ASP.NET Core MVC 站点
- node.js - 是否有 Json 格式的 ERD 表?
- c++ - 未定义引用“std::thread::_State@GLIBCXX_3.4.22 的 typeinfo”的原因?
- powerapps - 在没有高级计划的情况下使用 Web 服务是否有其他选择?
- python - ValueError:视图 users.views.logout_user 没有返回 HttpResponse 对象。它返回 None 而不是
- git - 只读存在的远程 git 分支
- python - PIL PNG与Gif背景
- java - JDK 7 RECV TLSv1 ALERT:致命,handshake_failure
- python - 如何使用 Windows 10 中的 python (3.8) 脚本在 Cygwin 中运行程序?
- xslt-3.0 - XSLT 3.0 增量合并