表 A 和表 B,为 1 对多关系,如何查询对于某个 A,多个 B 中最近更新的那一条记录
1
gzq527 2018 年 11 月 30 日
每组最新的那一条?
|
3
gzq527 2018 年 11 月 30 日
|
4
watzds 2018 年 11 月 30 日
|
5
loongwang 2018 年 11 月 30 日
|
6
loongwang 2018 年 11 月 30 日
|
7
ackfin01 OP @gzq527
这个只 GROUP BY b.USER_ID; 还可以 SELECT ID,USER_ID,problems,last_updated_date ? |
9
killaboy712 2018 年 11 月 30 日
先把 B 表分组排序,row_number() over(partition by xx order by 时间) as 'rk',然后 select * from B 排序后的表,where rk =1,再将其与 A 表关联
|
10
fanhaipeng0403 2018 年 11 月 30 日
|
11
fanhaipeng0403 2018 年 11 月 30 日
查询返回每个 id 的前 5
SELECT yourtable.* FROM yourtable INNER JOIN ( SELECT id, GROUP_CONCAT(year ORDER BY rate DESC) grouped_year FROM yourtable GROUP BY id) group_max ON yourtable.id = group_max.id AND FIND_IN_SET(year, grouped_year) BETWEEN 1 AND 5 ORDER BY yourtable.id, yourtable.year DESC |
12
ackfin01 OP |
13
lueffy 2018 年 11 月 30 日
mark 一下
|
14
Magic347 2018 年 11 月 30 日
@killaboy712 漂亮,这里需要用到开窗函数,分组之后的 topk 问题的典型用例
|