我有一个很大的表(超过100万行),其结构类似于下面的表:
| 识别码|外键1|外键_2|点击|安装|创建时间|
| - -|- -|- -|- -|- -|- -|
| 一个|01年|01年|2个|第0页|2022年11月10日|
| 2个|01年|二|五十四|十二|2022年11月10日|
| 三个|01年|01年|九个|第0页|2022年11月11日|
| 四个|01年|二|八十五|二十个|2022年11月11日|
| 五个|01年|01年|三个|一个|2022年11月12日|
| 六个|01年|二|八个|第0页|2022年11月12日|
| 七个|01年|01年|六个|第0页|2022年11月13日|
| 八个|01年|二|二百二十一|六十|2022年11月13日|
| 九个|01年|01年|六十一|10个|2022年11月14日|
| 10个|01年|二|七十五|十七岁|2022年11月14日|
| 十一|01年|01年|五十八|八个|2022年11月15日|
| 十二|01年|二|九个|第0页|2022年11月15日|
| 十三|01年|01年|10个|一个|2022年11月16日|
| 十四|01年|二|二十五个|第0页|2022年11月16日|
如何根据created_at日期选择每对唯一的foreign_key_1和foreign_key_2的最近5行?这可能吗?
我尝试过分区和分组,但我在编写mySQL语法和复杂查询方面是个初学者,所以我一直无法弄清楚。
1条答案
按热度按时间rdrgkggo1#
一种可能的解决方案是使用
row_number()
窗口函数,其中您按foreign_key_1
和foreign_key_2
进行分区,并按created_at
以降序对分区进行排序: