sql - SQL:子集数据:当id的time_id满足另一列的条件时选择id
问题描述
我在 SQL 中有一个数据(dt),如下所示:
ID time_id act rd
11 1 1 1
11 2 4 1
11 3 7 0
12 1 8 1
12 2 2 0
12 3 4 1
12 4 3 1
12 5 4 1
13 1 4 1
13 2 1 0
15 1 3 1
16 1 8 0
16 2 8 0
16 3 8 0
16 4 8 0
16 5 8 0
我想获取此数据的子集,以便仅保留具有 time_id == 5 的 ids(及其相应的 time_id、act、rd)。所需的输出如下
ID time_id act rd
12 1 8 1
12 2 2 0
12 3 4 1
12 4 3 1
12 5 4 1
16 1 8 0
16 2 8 0
16 3 8 0
16 4 8 0
16 5 8 0
我知道我应该以某种方式使用 having 子句,但到目前为止还没有成功(返回空输出)。以下是我的尝试:
SELECT * FROM dt GROUP BY ID 具有 min(time_id) == 5;
解决方案
WITH temp AS
(
SELECT id FROM tab WHERE time_id = 5
)
SELECT * FROM tab t join temp tp on(t.id=tp.id);
推荐阅读
- reactjs - 如何使用 react-sortable-hoc 访问 refs,withref
- json - 构建重复值的颠簸转换
- python - 如何确定 dateparser.search.search_dates() 是否返回日期、时间或日期时间
- python - Python PDF 文件文本提取
- javascript - 我对使用 javascript 将城市列表加载到下拉列表中有些困惑
- python - python中的语音翻译器
- typescript - “getManager().query()”在 TypeORM 中是如何工作的?
- google-chrome - 如何添加多命令行参数以在 android 中打开 chrome?
- c++ - 如何将 std::set_terminate 与 SetUnhandledExceptionFilter 一起使用?
- spring-cloud-dataflow - 如何在 Spring Cloud 数据流中使用过滤器?