SQL 选择具有较高时间戳值的行

标签 sql postgresql

在 PostgreSQL 服务器上,我有一个如下所示的表格:

+------+------+------------------+
| Code |  kind|    timestamp     |
+------+------+------------------+
|  1   |  I   | 16-05-2011 09:17 | 
|  1   |  O   | 16-05-2011 09:47 | 
|  2   |  I   | 16-05-2011 09:37 | 
|  3   |  I   | 16-05-2011 11:26 | 
|  3   |  O   | 16-05-2011 12:11 |
|  3   |  I   | 16-05-2011 13:23 |
+------+------+------------------+

此表表示池中人员的 IN 和 OUT 以及相对时间戳,我想知道在给定时刻池中的人员。

有没有办法检索没有相应“O”的种类“I”的行? 我可以用一个查询来完成吗?

代码代表人代码...

最佳答案

LEFT JOIN 是一种方法

SELECT 
       t.Code,
       t.kind,
       t.timestamp 
FROM   table t 
       LEFT JOIN table t2 
         ON t.code = t2.code 
            AND t.kind = 'I' 
            AND t2.kind = 'O' 
WHERE  t2.code IS NULL 

Not Exists 也应该可行

关于SQL 选择具有较高时间戳值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023831/

相关文章:

sql - 如何在postgres中加入空值填充行

mysql - 如何在下面的示例中正确执行 SQL 中的计数

mysql - vb.net MySQLDataAdapter 中的双重 SQL 查询

php - 如何在 php 中使用 mysql IN() 函数?

sql - Postgres : How to set column default value as another column value while altering the table

postgresql - 为什么 Parquet 而不是像 Postgres 这样的 RDBMS

sql - 根据同一列中的数据,每两行计算 SQL 中的百分比?

postgresql - 部分索引表达式的不一致统计

python - 在 Redshift 中的单独行上返回 JSON 数组列的元素

sql - 这个 SQL 查询可以更高效吗?