使用这个查询,
SELECT username, MAX(wordpermin) as maxword,date_created FROM user_records where DATE(date_created) = CURDATE() GROUP BY(username) ORDER BY maxword DESC LIMIT 20我试图查询20个顶级wordpermin的用户名和创建时间限制,并在当前24小时内调用date_created。
我遇到的问题是什么时候我有一个新的高wordpermin。它没有给我提供新的date_created,而是保留了date_created的旧值。我甚至查看了我的数据库,并确保我更新了date_created。怎么会发生这种事?
我的意思是,我有两个值来自不同的行。
发布于 2020-04-03 15:59:01
下面的查询给出用户使用maxword的最后一个日期。
当您激活ONLY_FULL_GROUP_BY时,您的查询将不会运行。
您应该始终为指定要使用的每个列,因为聚集函数行没有任何顺序,而且每个列都将自行选择。
我选择了Max (date_created),以便MySQL知道要显示哪个日期,因为如果有多个具有相同最大单词的日期,MySQL将显示所有日期。
SELECT
u.username, u1.maxword, MAX(u.date_created)
FROM
user_records u
INNER JOIN
(SELECT
username,DATE(date_created) date_created, MAX(wordpermin) AS maxword
FROM
user_records
GROUP BY username,DATE(date_created)) u1 ON u.username = u1.username
AND u.wordpermin = u1.maxword AND Date(u.date_created) = DATE(u1.date_created)
WHERE
DATE(u.date_created) = CURDATE()
GROUP BY (username)
ORDER BY maxword DESC
LIMIT 20;
LIMIT 20https://stackoverflow.com/questions/61015452
复制相似问题