这个问题在这里已经有答案了:
sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
正如标题所说,我想从每个月中选择一个最新日期的记录。我有一张这样的table:
ID field1 field2 created_at
----------------------------------------------
1 40000.0000 70000.0000 2018-01-31
2 80000.0000 90000.0000 2018-02-28
3 10000.0000 30000.0000 2018-03-31
4 12000.0000 32000.0000 2018-04-30
5 212500.0000 312500.0000 2018-05-31
6 324000.0000 424000.0000 2018-06-30
7 122300.0000 222300.0000 2018-07-26
8 357772.2420 307600.9081 2018-07-31
我提出了这个查询,但它没有按预期工作。
选择id、field1、field2、max(创建时间)作为创建时间 my_table
按年度分组(创建时间),按月份分组(创建时间)按asc创建的订单
我得到的结果是:
ID field1 field2 created_at
----------------------------------------------
1 40000.0000 70000.0000 2018-01-31
2 80000.0000 90000.0000 2018-02-28
3 10000.0000 30000.0000 2018-03-31
4 12000.0000 32000.0000 2018-04-30
5 212500.0000 312500.0000 2018-05-31
6 324000.0000 424000.0000 2018-06-30
7 122300.0000 222300.0000 2018-07-31 <-- values from ID 7 but date from ID 8
预期产量
ID field1 field2 created_at
----------------------------------------------
1 40000.0000 70000.0000 2018-01-31
2 80000.0000 90000.0000 2018-02-28
3 10000.0000 30000.0000 2018-03-31
4 12000.0000 32000.0000 2018-04-30
5 212500.0000 312500.0000 2018-05-31
6 324000.0000 424000.0000 2018-06-30
8 357772.2420 307600.9081 2018-07-31
如何从与相同的记录中选择值 MAX(created_at)
?
sqlfiddle公司
2条答案
按热度按时间dddzy1tm1#
通过使用join
http://sqlfiddle.com/#!2018年9月4日
9jyewag02#
你可以试试这个:
请参见sqlfiddle