今天写代码时遇到一个需求是这样的:
取表内最新的一条数据,根据用户名分组
本来以为又是那种
需求,然后就开始写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>