MySQL:从列和所有行的计数中选择最后(最大)值

时间:2014-11-28 23:28:04

标签: php mysql

如何从单个查询中的所有行的列和计数中选择最后一个(= max)值?

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

我想选择特定ITEM_ID的最后/最大值以及具有此ID的所有行的计数。 因此,ITEM_ID = 1:

VALUE      COUNT
111        3

我的查询是这样的:

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

它有效,但看起来......很奇怪。有没有更好(更简单/更快)的解决方案?感谢

1 个答案:

答案 0 :(得分:2)

您需要在GROUP BY列上ITEM_ID获取MAX()COUNT()

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