通过此查询,我得到一组数据
SELECT UID, CouncilNam, Probabilit, Scored_Lab, PTC_ID
FROM london.london
我想通过PTC_ID和Scored_Lab进行分组,我可以对此进行分组......
SELECT UID, CouncilNam, Probabilit, Scored_Lab, PTC_ID
FROM london.london
GROUP BY PTC_ID, Scored_Lab
但是,在初始查询中,有多行具有Scored_Lab和PTC_ID分组,但是概率值不同。我希望这个集合中的最低值,但是组内的默认选择不提供此功能。
我已经在这里阅读了几十个类似的查询,但仍然无法解决。任何帮助将不胜感激。
答案 0 :(得分:1)
如果我正确地阅读了您的问题,那么您正在寻找以下内容:
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