首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询,MAX() + GROUP BY + WHERE

问MySQL查询,MAX() + GROUP BY + WHERE
EN

Stack Overflow用户
提问于 2017-02-15 11:55:06
回答 2查看 321关注 0票数 0

如何获取包含每个分组集的最大值的行?我有这个mysql

代码语言:javascript
复制
SELECT ticketId, version, storeId, `status` FROM ticket where storeId = 1 AND status = 0;

并得到结果。

​

​

我想要找到不同ticketId中的最大版本,行应该是

代码语言:javascript
复制
ticket | version | storeId | status
---
  1    | 5       | 1       | 0  
  2    | 5       | 1       | 0

mysql会是怎样的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-15 11:58:29

使用聚合函数max

代码语言:javascript
复制
select ticketId,
    max(version),
    storeId,
    `status`
from ticket t
where storeId = 1
    and status = 0
group by ticketId,
    storeId,
    `status`

如果禁用了ONLY_FULL_GROUP_BY,您可以使用:

代码语言:javascript
复制
select ticketId,
    max(version),
    storeId,
    `status`
from ticket t
where storeId = 1
    and status = 0
group by ticketId;
票数 1
EN

Stack Overflow用户

发布于 2017-02-15 11:59:26

只需使用group by和max即可

代码语言:javascript
复制
SELECT ticketId as ticket, MAX(version) AS version, storeId, `status`
FROM ticket 
WHERE storeId = 1
AND status = 0
GROUP BY ticketId
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42240438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档