我的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查询是否可行?任何帮助深表感谢!
非常感谢,布雷特
您希望按类型分组,然后从该类型获取最小半径,并按类型对其进行排序
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,因为它不会特别属于具有最小半径的类型)
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |