[英]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.