sql - 如何对结果数据进行分组和限制
问题描述
我在 ms-access 上运行了以下查询:
select
t1.[supplier code], t1.date1,t1.date2
from
otifdatatoexport t1 left join otifdatatoexport t2 on
t1.date1 >= t1.date2 and t1.[supplier code] = t2.[supplier code]
group by
t1.date1,
t1.[supplier code],t1.date2
order by
t1.[supplier code],
t1.date1
事情是我想在为夫妇 t1.[供应商代码],t1.date1 输出时只保留 3 条记录(不少于不多,见图片红框)。有没有办法做到这一点?
解决方案
如果您想要每个供应商的最新三行,您可以使用in
:
select t.*
from t
where t.date in (select top (3) t2.date
from t t2
where t2.supplier = t.supplier
order by t2.date desc
);
这是基于对您的问题的编辑。您只显示一张数据表,所以我不知道您的查询为什么引用多个表。
推荐阅读
- python-3.x - Django 模型属性不起作用 - Django
- python - 熊猫:以固定间隔计算差异,并在没有更多记录时更改为可变间隔以使用最早的记录
- python - 蟒蛇 | 将特定类型的文件从输入/源文件夹移动到输出/目标文件夹,保留文件夹结构
- networking - 使用接口参数作为 NIC 名称的 ping 命令正在工作,但不能通过 IP 工作
- javascript - 如何使用 Axios 拦截器向响应添加一些标头?
- r - 从r中的折线图中的X轴删除日期
- python - (discord.py) 使用某人的头像 url 更改不和谐头像
- css - Angular PrimeNG CSS p-table pSortableColumn,启用自动换行断词不起作用
- c++ - Arduino 和 C++ 更改端口
- json - Dart Json UTF-8 解码