如何从单个查询中的所有行的列和计数中选择最后一个(= 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
它有效,但看起来......很奇怪。有没有更好(更简单/更快)的解决方案?感谢
答案 0 :(得分:2)
您需要在GROUP BY
列上ITEM_ID
获取MAX()
和COUNT()
select max(value) as `VALUE`,
count(*) as `COUNT`
from your_table
group by ITEM_ID;