在MySQL中更改分组的顺序
通过这个查询,我得到了一组数据在MySQL中更改分组的顺序,mysql,Mysql,通过这个查询,我得到了一组数据 SELECT UID, CouncilNam, Probabilit, Scored_Lab, PTC_ID FROM london.london 我想分组的PTC_ID和评分_实验室,我可以做这个 SELECT UID, CouncilNam, Probabilit, Scored_Lab, PTC_ID FROM london.london GROUP BY PTC_ID, Scored_Lab 但是,在初始查询中,有多行具有分组计分的\u Lab和PTC
SELECT UID, CouncilNam, Probabilit, Scored_Lab, PTC_ID
FROM london.london
我想分组的PTC_ID和评分_实验室,我可以做这个
SELECT UID, CouncilNam, Probabilit, Scored_Lab, PTC_ID
FROM london.london
GROUP BY PTC_ID, Scored_Lab
但是,在初始查询中,有多行具有分组计分的\u Lab和PTC\u ID,但概率值不同。我想要此集合中的最低值,但group by中的默认选择不提供此值
我在这里读过几十个类似的问题,但仍然无法解决。任何帮助都将不胜感激。如果我没有看错您的问题,您正在寻找以下线索:
SELECT
PTC_UD,
Scored_Lab,
MIN(Probabilit) -- take the smallest probability in each group
FROM london.london
GROUP BY PTC_ID, Scored_Lab
请注意,选择UID和CouncilNam列可能无效,或者可能没有意义,因为您没有在查询中将它们指定为组的聚合
以下是一个常规查询,可用于获取每个概率最小组的完整匹配行:
SELECT t1.*
FROM london.london t1
INNER JOIN
(
SELECT PTC_UD, Scored_Lab, MIN(Probabilit) AS p_min
FROM london.london
GROUP BY PTC_ID, Scored_Lab
) t2
ON t1.PTC_UD = t2.PTC_UD AND
t1.Scored_Lab = t2.Scored_Lab AND
t1.Probabilit = t2.p_min
只需执行minProbabilit?我想要此集合中的最低值,但group by中的默认选择不提供此值。-组中没有默认选择。您的查询不是有效的SQL。可以使用获取每列的最小值,但如果要获取包含最小值的整行,则路径错误;GROUP BY无法执行此操作。Select语句无效SQL-无法选择不属于分组的列。MySQL在配置时会容忍此错误,但您将从组中的随机记录中获取这些列的值。“我想要这组中最低的”-然后简单地用另一种方法。谢谢你的回答。我想我可能已经用这个解决了