我确信这曾经奏效。
SELECT first_name, surname, id, time, MIN(timeinmilliseconds) FROM users WHERE team= '$key
'
我不知道在何处或为何使用GroupBy条款。
答案 0 :(得分:0)
从未奏效
SELECT first_name, surname, id, time, MIN(timeinmilliseconds)
FROM users
WHERE team = '$key'
GROUP BY id, first_name, surname, time
我不知道它会产生你想要的东西,但它应该运行
答案 1 :(得分:0)
函数MIN(),MAX(),COUNT(),SUM(),AVG()是sql中用于对结果集进行分组的聚合函数。 根据语法,您需要在group by子句中提及要应用聚合函数的列。
在您的查询中,您正在使用MIN()函数找出针对所选列的最短时间(以毫秒为单位)。所以它应该遵循如下语法。
SELECT first_name, surname, id, time, MIN(timeinmilliseconds)
FROM users
WHERE team= '$key'
GROUP BY first_name,surname,id,time
希望这能清除你的疑虑。
答案 2 :(得分:0)
SQL92及更早版本不允许选择列表的查询, HAVING条件或ORDER BY列表指的是非聚合列 既不在GROUP BY子句中命名,也不在功能上 依赖于(唯一确定的)GROUP BY列。例如, 此查询在标准SQL92中是非法的,因为非聚合名称 选择列表中的列不会出现在GROUP BY:
中
SELECT o.custid, c.name, MAX(o.payment)
FROM orders AS o, customers AS c
WHERE o.custid = c.custid
GROUP BY o.custid;
查询到 在SQL92中是合法的,必须从select中省略name列 列出或在GROUP BY子句中命名。
SQL99及更高版本允许每个可选功能T301使用此类非聚合 如果它们在功能上依赖于GROUP BY列:如果是这样的话 name和custid之间存在关系,查询是合法的。这个 例如,将custid作为主键 客户。
MySQL 5.7.5及更高版本实现了对功能依赖的检测。如果 启用ONLY_FULL_GROUP_BY SQL模式(默认情况下是这样), MySQL拒绝选择列表,HAVING条件或的查询 ORDER BY列表引用既未命名的非聚合列 GROUP BY子句在功能上也不依赖于它们。 (之前 5.7.5,MySQL不检测功能依赖性,默认情况下不启用ONLY_FULL_GROUP_BY。有关的描述 5.7.5之前的行为,参见MySQL 5.6参考手册。)
https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
当没有group by
时,没有功能依赖的列。您可能希望子查询获取min(timeinmilliseconds)
的值。