以下是我的示例数据,我想获取最新时间的host:value对。
+------+-------+-------+
| HOST | VALUE | TIME |
+------+-------+-------+
| A | 100 | 13:40 |
| A | 150 | 13:00 |
| A | 222 | 13:23 |
| B | 210 | 13:55 |
| B | 300 | 13:44 |
+------+-------+-------+
希望仅获取每个主机列值具有最新时间值的行。结果应为:A 150 13:40 B 210 13:55
我认为有几种分析功能可以在Oracle中实现此要求,但是我不确定在SQLite中可以做什么。
您能让我知道如何查询吗?
这是一种可以在所有版本的SQLite上运行的符合ANSI要求的查询方式。有关可能更短的解决方案,请参阅@CL的答案。
SELECT t1.HOST || '-' || t1.VALUE || '-' || t1.TIME AS HOSTVALUETIME
FROM table t1 INNER JOIN
(
SELECT HOST, MAX(TIME) AS MAXTIME
FROM table
GROUP BY HOST
) t2
ON t1.HOST = t2.HOST AND t1.TIME = t2.MAXTIME
ORDER BY t1.HOST DESC
输出:
+---------------+
| HOSTVALUETIME |
+---------------+
| A-100-13:50 |
| B-210-13:55 |
+---------------+
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句