我正在尝试执行一个SQL,该SQL将返回表中两个不同列的最新数据值。
当前,我选择不同的列值,然后,我遍历各列以获取在选择之前的不同值,然后将其排序并限制为1。这些标记可以是任何数字,可能并不总是一起发布(一个只能张贴标签1;而其他时候可以张贴1、2、3)。
尽管它给出了预期的结果,但在许多方面似乎效率低下,而且由于我没有足够的SQL经验,所以这是迄今为止我发现执行任务的唯一方法...
--------------------------------------------------
| name | tag | timestamp | data |
--------------------------------------------------
| aa | 1 | 566 | 4659 |
--------------------------------------------------
| ab | 2 | 567 | 4879 |
--------------------------------------------------
| ac | 3 | 568 | 1346 |
--------------------------------------------------
| ad | 1 | 789 | 3164 |
--------------------------------------------------
| ae | 2 | 789 | 1024 |
--------------------------------------------------
| af | 3 | 790 | 3346 |
--------------------------------------------------
因此,预期结果为{3164,1024,3346}
当前我正在做的是
"select distinct tag from table"
然后,我以编程方式存储所有不同的标记值,并使用
以编程方式遍历这些值"select data from table where '"+ tags[i] +"' in (tag) order by timestamp desc limit 1"
谢谢
答案 0 :(得分:0)
这很接近,但是请注意,如果具有相同标签的两行共享最大时间戳,则结果集中将出现重复
jdbc:mysql://<REMOTE_IP>:3306/SOME_DB_2&useSSL=true