2017-02-15 13 views
0

グループ化された各セットの最大値を含む行を取得するにはどうすればよいですか? 私はこのmysqlを持っていますMySQLクエリ、MAX()+ GROUP BY + WHERE

SELECT ticketId, version, storeId, `status` FROM ticket where storeId = 1 AND status = 0; 

を取得してください。

enter image description here

そして、私は別のticketIdで最大バージョンを見つけたい、行は、mysqlは可能だろうか

ticket | version | storeId | status 
--- 
    1 | 5  | 1  | 0 
    2 | 5  | 1  | 0 

でしょうか?

答えて

1

使用アグリゲーション機能max

select ticketId, 
    max(version), 
    storeId, 
    `status` 
from ticket t 
where storeId = 1 
    and status = 0 
group by ticketId, 
    storeId, 
    `status` 

ONLY_FULL_GROUP_BYが無効になっている場合、あなたが使用することができます:

select ticketId, 
    max(version), 
    storeId, 
    `status` 
from ticket t 
where storeId = 1 
    and status = 0 
group by ticketId; 
1

だけgroup bymaxを使用します。

SELECT ticketId as ticket, MAX(version) AS version, storeId, `status` 
FROM ticket 
WHERE storeId = 1 
AND status = 0 
GROUP BY ticketId