mysql分组选择最大值_如何根据列分组的最大值从MySQL中选择行

如果你需要完整的行,你可以使用这个:

SELECT fullTable.nid as nid,

recent.time as time,

fullTable.user as user,

fullTable.page_id as page_id

FROM TableName fullTable

INNER JOIN (SELECT MAX(t1.time) as time, t1.user, t1.page_id

FROM TableName t1

GROUP BY user, page_id) recent

ON recent.time = fullTable.time AND

recent.user = fullTable.user AND

recent.page_id = fullTable.page_id

ORDER BY time DESC

如果您要求“group by”子句之外的列,那么mysql可以返回此组中此列的任何值.因此,如果组内的所有值都不相同,那就是您的情况,您不能直接将它包含在select子句中,您需要使用连接.

您可以在the reference上阅读有关MySQL上没有分组列的更多信息

如果您不需要nid字段,可以使用另外一个:

SELECT MAX(time) as time, user, page_id

FROM TableName

GROUP BY user, page_id

ORDER BY time DESC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值