sql - 查询 SQL AND 运算符
问题描述
我有一个表包含多列......在一个名为Event的列中,如下所示
在上图中的最后一列(列名:事件)我应该为一个事件获取两条记录
事件记录的开始日期和结束日期。
string sql = "Select * From " + TableName+ "
where Date_Time in (
(select Max(Date_Time)
FROM " + TableName + "
group by Event
having Event = 'Cooling'),
( select Min(Date_Time)
FROM " + TableName + "
group by Event
having Event = 'Cooling')
) "
所以我通过上面的查询得到了两条冷却事件的记录。像这样,我也需要在一个查询中获取剩余事件。如何在其中附加其他事件条件?
解决方案
row_number
您可以按如下方式使用分析功能:
select * from
(select t.*,
row_number() over (partition by event order by date_time) as rn_i,
row_number() over (partition by event order by date_time desc) as rn_d
from your_table t) t
where 1 in (rn_i, rn_d)
推荐阅读
- sas - 带有 M 修饰符的 %SCAN 给出不正确的结果
- postgresql - 在JOOQ中获取两个日期的差的总和
- c++ - QWidget 及其子 Widget 中的 Tab 键顺序
- classification - ValueError:分类指标无法处理未知目标和多类目标的混合
- r - 如何简化下面的替换代码
- css - Chrome css修复了伪元素的定位不起作用
- sql - SQL“','附近的语法不正确”
- django - 如果 form.is_valid 测试视图的最聪明方法?
- javascript - 如何将表格的选定行值传递给按钮单击事件 - 材料设计 - Angular 6
- mysql - MySQL 子查询优化与共享子查询