简体   繁体   English

MySQL:从列中选择最后一个(最大值)值并计数所有行

[英]MySQL: select last (max) value from column and count of all rows

How can I select last (=max) value from column and count of all rows in single query? 如何在单个查询中从列和所有行的计数中选择最后一个(= max)值?

ID      ITEM_ID       VALUE
1       1             100
2       1             101
3       2             201
4       3             333
5       2             222
6       1             111

I want to select last / max value for particular ITEM_ID and count of all rows with this ID. 我想为特定ITEM_ID选择last / max值,并选择具有该ID的所有行的计数。 For ITEM_ID = 1 thus: 因此,对于ITEM_ID = 1:

VALUE      COUNT
111        3

My query is like this: 我的查询是这样的:

SELECT (SELECT COUNT(*) FROM table) AS count, (SELECT value FROM table ORDER BY id DESC LIMIT 1) AS value FROM table WHERE item_id = 1 LIMIT 1

It works but looks ... weird. 它有效,但看起来...很奇怪。 Is there any better (simpler / faster) solution? 有没有更好(更简单/更快)的解决方案? Thanks 谢谢

You need to do a GROUP BY on column ITEM_ID while getting the MAX() and COUNT() like 您需要在ITEM_ID上进行GROUP BY ,同时获得MAX()COUNT()

select max(value) as `VALUE`,
count(*) as `COUNT`
from your_table
group by ITEM_ID;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM