簡體   English   中英

SQL選擇具有更高時間戳值的行

[英]SQL Select rows that have higher timestamp value

在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一起使用

假設Code是一個人,您可以將I和O kind轉換為數字+1和-1,然后選擇按Code分組的SUM(代碼*種類),其總和為非零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM