在 MySQL 中,MAX() 命令返回不正确的结果

问题描述 投票:0回答:2

我有一个数据库,其中有列 id、adsoyad、tag_id、map_id、xpos、ypos 和日期。

此数据库每 15 分钟从每个用户接收一次数据。每个用户都有一个唯一的 tag_id。 “日期”列的结构采用日期时间格式。 当我运行下面的代码时;

SELECT tag_id, xpos, ypos, adsoyad, date, MAX(date) 
FROM `lt_position` 
WHERE map_id="750" 
GROUP BY tag_id

出现一个名为 Max(date) 的列,分组是正确的,但是 Max(date) 列列出了前一个条目,而不是最后一个条目。

当我运行此代码时,在列出时,它列出了该人的最后注册日期和之前的注册。

我要的是看每个用户在上次注册时间提交的xpos和ypos数据

我尝试了一些不同的代码,这些代码是我在网络上的不同解决方案中以及从 stackoverflow 中找到的。但他们给我的结果都是一样的。

我猜我的数据库有问题。我试图修复它几次。我删除并创建了一次。但是结果还是一样。

sql mysql max group
2个回答
0
投票

请不要在问题中包含图片。请改用文字。

你应该从哪个集合中分辨出你想要

max
来自(最大是什么?)。您似乎在查询中同时拥有
date
max(date)

GROUP BY
语句应包括
SELECT
.

中的所有非聚合列

0
投票

请执行以下查询以查看 tag_id wise max date 是否在顶部。

SELECT tag_id, xpos, ypos, adsoyad, date FROM `lt_position` WHERE map_id="750" order BY tag_id date
© www.soinside.com 2019 - 2024. All rights reserved.