sql - 为每个组选择具有最小值的行
问题描述
我有一个带有如下表的数据库:
日期 | 容器 ID |
---|---|
1/1 | 1 |
2/2 | 1 |
3/3 | 1 |
4/4 | 2 |
5/5 | 2 |
6/6 | 3 |
7/7 | 3 |
容器 ID 是另一个表的外键,容器是有效命名的组,元素可以是其中的一部分。
我正在寻找一个查询来获取每个Container ID
这样的最早日期:
最早日期 | 容器 ID |
---|---|
1/1 | 1 |
4/4 | 2 |
6/6 | 3 |
有什么方法可以让我加入 Container ID 来实现这一点,还是我在加入时走错了路?
解决方案
但最好的方法是将日期保存为日期列。您可以将所有功能用于日期
CREATE TABLE table1 ( [Date] varchar(10), [Container ID] INTEGER ); INSERT INTO table1 ([Date], [Container ID]) VALUES ('1/1', '1'), ('2/2', '1'), ('3/3', '1'), ('4/4', '2'), ('5/5', '2'), ('6/6', '3'), ('7/7', '3'); GO
SELECT MIN([Date]), [Container ID] FROM table1 GROUP BY [Container ID] GO
(无列名) | 容器 ID :--------------- | ------------: 1/1 | 1 4/4 | 2 6/6 | 3
db<>在这里摆弄
推荐阅读
- gcloud - 使用 GCloud SDK CLI 列出 GCR 图像标签
- javascript - Firefox:WebRequest API 与欺骗性页面
- c# - Prism DelegateCommand 的 CanExecute 在 RaiseCanExecuteChanged 后获取空参数
- html - XSL:设置表格列固定宽度
- javascript - angularjs +如何基于http post response将css类应用于消息文本
- dynamic - 加载带有动态项的 VSPackage 未在启动时加载
- docker - Rancher(docker) 磁盘使用清理
- javascript - 多个输入的验证 | HTML - jQuery
- docker-compose - Traefik 2 网关超时
- asp.net - asp.net 中的 IIS 重写 URL 进入无限循环