String stmt1 = "SELECT * FROM mytable WHERE created=(SELECT MAX(created)";
String stmt2 = "SELECT * FROM mytable WHERE source=somesource";
我想结合这两个陈述。我有三个来源,我想为每个来源创建最后一个实例(使用三个单独的查询)。
有没有办法从源中选择所有元素,然后获取最新的时间戳?
谢谢。
答案 0 :(得分:0)
使用ANSI SQL执行此操作的标准方法是row_number()
(几乎所有数据库都支持,包括Hana):
SELECT t.*
FROM (SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY source ORDER BY created DESC) as seqnum
FROM mytable t
) t
WHERE seqnum = 1;
答案 1 :(得分:0)
您可以在mysql中使用GROUP BY将某些列与WHERE条件分组,例如:
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
在你的情况下:
SELECT MAX(created)as date,* FROM mytable WHERE source=somesource GROUP BY created;