首先:感谢收看;感谢您的时间!
重点:
架构:对于 myTable
nonUniqueID YEAR MONTH DAY HOUR numericValue
1 2012 01 01 01 99.9
1 2012 01 01 02 65.2
1 2012 01 01 03 -88
7 2012 02 08 21 9.08
1 2012 01 01 09 99.913
1 2013 01 01 01 99.999999
基本上,它是两个值nonUniqueID
,并且numericValue
具有精细的日期。
现在,我需要在整个数据库中获得最大的日期。有了上面的数据,预期的结果是:
nonUniqueID YEAR MONTH DAY HOUR numericValue
1 2013 01 01 01 99.999999
因为这是 SQLite,所以我知道我最终将不得不多次使用 MAX()。顺序必须是 MAX(YEAR) 然后 MAX(MONTH) 然后 MAX(DAY) 然后 MAX(HOUR)。
基本上,查询会像这样工作(我只是不太了解 SQL 语法来创建查询):
- 查找所有年份最高的记录
- 从这个集合中,找到所有最高 MONTH 的记录
- 从此集合中,找出 DAY 最高的所有记录
- 从这个集合中,找到所有 HOUR 最高的记录
- 返回此记录
这是我改编自另一个不起作用的 StackExchange 问题的 SQL
Select * From (
Select max(YEAR) as Y FROM myTable
union
Select max(MONTH) as M FROM myTable
union
Select max(DAY) as D FROM myTable
union
Select max(HOUR) as H FROM myTable
) myTable;
返回
Y
-----
21
08
02
2013
将此与预期结果进行比较:
nonUniqueID YEAR MONTH DAY HOUR numericValue
1 2013 01 01 01 99.999999
它返回 4 条记录,而不是带有 4 个值的一条记录。
有人可以帮我查询吗?谢谢你!