我可以在mysql中使用聚合函数(LAST)吗?

时间:2011-03-31 06:09:30

标签: mysql

我可以在mysql中使用聚合函数(LAST)吗? 如果是,那么为什么给我以下查询::

的错误
SELECT `user_id`,last(`value`)
FROM `My_TABLE`
group by `user_id`

错误 ::您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在第1行value'附近的'{My_TABLE)FROM user_id组附近使用正确的语法

编辑 ::我的答案“最后”未在MySql中使用。然后如何在MySql中执行它?

5 个答案:

答案 0 :(得分:5)

不,mysql中没有任何名为LAST的内容

请参阅aggregated function

列表

修改

你可以执行类似这样的事情

select f.user_id, f.value
from (
   select  MAX(value) as maxval
   from my_table group by user_id
) as x inner join my_table as f on f.value = x.maxval

答案 1 :(得分:2)

MySQL中没有定义“last”函数。你只是想获得最后(最新)的记录吗?

如果是这样的话:

SELECT `user_id`, `value`
FROM `My_TABLE`
ORDER BY `user_id` DESC 
LIMIT 1;

SELECT `user_id`, `value`
FROM `My_TABLE`
WHERE `user_id` = (SELECT MAX(`user_id`));

答案 2 :(得分:1)

像这样 -

SELECT * FROM table1 t1
  JOIN (SELECT depno, MAX(id) max_id FROM table1 GROUP BY depno) t2
    ON t1.depno = t2.depno AND t1.id = t2.max_id

答案 3 :(得分:0)

因为在mysql中没有名为last()的函数。

尝试在mysql中使用group by order by子句

答案 4 :(得分:0)

我找到的最好的处理方法:

SELECT user_id, json_unquote(json_extract(json_objectagg('value',  value), '$.value'))
FROM my_table
GROUP BY user_id