sql - SQL问题如何选择具有列条件值的行
问题描述
假设我有这张桌子:
id timeline
---|--------|
1 | BASELINE |
1 | MIDTIME |
1 | ENDTIME |
2 | BASELINE |
2 | MIDTIME |
3 | BASELINE |
4 | BASELINE |
5 | BASELINE |
5 | MIDTIME |
5 | ENDTIME |
如何获得输出,使其看起来像这样:
id timeline
---|--------|
1 | BASELINE |
1 | MIDTIME |
2 | BASELINE |
2 | MIDTIME |
5 | BASELINE |
5 | MIDTIME |
如何选择具有 2 个时间线值的每个 ID 的前两个术语?非常感谢
解决方案
这是一个示例。我使用了 ROW_NUMBER() 函数。
希望能帮到你,我的朋友:))
CREATE TABLE TestData(id int, timeline varchar(20))
insert into TestData
values (1, 'BaseLine'),
(1, 'Midtime'),
(1, 'Endtime'),
(2, 'BaseLine'),
(2, 'Midtime'),
(3, 'BaseLine'),
(4, 'BaseLine'),
(5, 'BaseLine'),
(5, 'Midtime'),
(5, 'Endtime')
-----
SELECT id, timeline
FROM (SELECT id, timeline,
ROW_NUMBER() OVER(PARTITION BY id ORDER BY (SELECT NULL)) AS rownum
FROM TestData
WHERE
id IN (
SELECT id FROM TestData group by id having count(id)>=2
)
) as T
WHERE rownum < 3
推荐阅读
- c++ - 在 python 中,我使用 Base 的派生类,它是由 SWIG 包装的 Base 类,但因错误信息而失败:参数 2 of type 'Base *'
- visual-studio-code - 从 Windows 资源管理器中打开 VS Code 中的文件夹
- jquery - 如何使用 jQuery DataTables 将嵌套表('td' 内的数据组)导出到 Excel?
- enums - Rust 编译器如何决定应该为枚举值分配多少内存?
- google-apps-script - 链接到谷歌表格的谷歌聊天机器人
- r - 如何在我的 PDF 输出 (R Shiny) 中添加徽标?
- hyperledger-fabric - Hyperledger Fabric 2.0:链码提交失败,并出现错误“此组织不同意链码定义”
- python - 在kivy中将变量传递到下一个屏幕
- php - 在 WooCommerce 中隐藏某些运输类别的运输方式
- python - 无法在 AWS EC2 VM 上运行映像错误:docker run standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”