我正在尝试通过“分组依据”从表中选择行,并忽略通过按日期对数据进行排序获得的第一行。排序应按日期字段完成,以忽略最新条目并返回组的旧条目。
桌子看起来像
+----+------------+-------------+-----------+
| id | updated on | group_name | list_name |
+----+------------+----------------+--------+
| 1 | 2013-04-03 | g1 | l1 |
| 2 | 2013-03-21 | g2 | l1 |
| 3 | 2013-02-26 | g2 | l1 |
| 4 | 2013-02-21 | g1 | l1 |
| 5 | 2013-02-20 | g1 | l1 |
| 6 | 2013-01-09 | g2 | l2 |
| 7 | 2013-01-10 | g2 | l2 |
| 8 | 2012-12-11 | g1 | l1 |
+----+------------+-------------+-----------+
http://www.sqlfiddle.com/#!2/cec99/1
所以,基本上,我只想返回 id (3,4,5,6,8),因为它们是 group_name 和 list_name 中最旧的。忽略最新条目并通过基于 group_name 和 list_name 分组返回旧条目
我无法为这个问题编写 sql。我知道 order by 不适用于 group by。请帮助我找出解决方案。
谢谢
而且,有没有办法在不使用子查询的情况下做到这一点?