今天写代码时遇到一个需求是这样的:
取表内最新的一条数据,根据用户名分组
本来以为又是那种
需求,然后就开始写sql
,写完一运行,报错。。。
然后发现GROUP BY
必须放在ORDER BY
的前面
但这样又会导致不能取最新的一条数据
于是用了一个“子查询”的办法解决
<select id="cowBeer" resultType="map" parameterType="map"> SELECT [字段] FROM ( SELECT DISTINCT [字段] FROM [表名] AS msg, [表名] AS user WHERE [条件] ORDER BY [创建时间字段] DESC ) r GROUP BY r.[分组条件] ORDER BY r.[创建时间字段] DESC </select>