带有ORDER BY的SQL查询

Bre*_*ett 0 sql

我的SQL数据库中有一个表,如下所示:

id    type      radius
-------------------------
1     type1     0.25
2     type2     0.59
3     type1     0.26
4     type1     0.78
5     type3     0.12
6     type2     0.45
7     type3     0.22
8     type3     0.98
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何定义一个SELECT返回每种类型的最小半径的查询.

换句话说,我正在寻找的结果将是:

结果:

id    type      radius
-------------------------
1     type1     0.25
6     type2     0.45
7     type3     0.22
Run Code Online (Sandbox Code Playgroud)

我假设我使用ORDER BY从最低到最高的顺序来定购,并抓住最低的半径.但是,我还假设我需要DISTINCT在类型上使用,但我无法弄清楚如何将其关闭.

任何专家SQL的人都知道这种类型的SELECT查询是否可行?任何帮助深表感谢!

非常感谢,布雷特

Nan*_*nne 6

您希望按类型分组,然后从该类型获取最小半径,并按类型对其进行排序

SELECT type, MIN(radius) FROM table
GROUP BY type
ORDER BY type
Run Code Online (Sandbox Code Playgroud)

如果你想让id与min一起使用,你就不能像我第一次输入那样:id是类型的半随机Id.可悲的是,你必须满足(从我的头顶)

SELECT t1.id,t1.type,t1.radius FROM table t1 
WHERE radius = ( 
     SELECT MIN(radius) FROM table
     WHERE radius = t1.radius
   )
Run Code Online (Sandbox Code Playgroud)

(最终编辑:您必须测试最后一个,基本警告是在第一个查询中您无法可靠地获取Id,因为它不会特别属于具有最小半径的类型)