从记录中获取最小值

时间:2019-01-30 12:44:48

标签: sql sql-server

我有以下表格位置路线。

locationId          RouteOrder       state  
25433                  2.0000           1
25434                  3.0000           NULL
25747                  4042.0000       1
25760                  4063.0000       1
25764                  4071.0000       1
48349                  4081.0000       NULL
48350                  4081.0000       NULL
48366                  4082.0000       NULL
48370                  4082.0000       NULL
25776                  4095.0000       NULL

我必须得到以下结果。 在minimumRouteOrder列中,我必须获取状态为null的位置的最小routeOrder。

locationId  RouteOrder       minimumRouteOrder
25433       2.0000            3.0000
25434       3.0000            3.0000
25747       4042.0000         3.0000
25760       4063.0000         3.0000
25764       4071.0000         3.0000
48349       4081.0000         3.0000
48350       4081.0000         3.0000
48366       4082.0000         3.0000
48370       4082.0000         3.0000
25776       4095.0000         3.0000

您能帮我创建SQL查询以获得以上结果吗?

3 个答案:

答案 0 :(得分:1)

使用窗口功能:

[['Anna', 'Annowska', '450'], ['Bartosz', 'Bartecki', '500']]

答案 1 :(得分:0)

您也可以尝试。

SELECT *, 
       (SELECT Min(routeorder) from [locationsRoute]
        WHERE  state IS NULL) minimumRouteOrder 
FROM   [locationsRoute] 

答案 2 :(得分:0)

使用MIN()

Select locationId, RouteOrder,
(SELECT MIN(RouteOrder) FROM locationsRoute WHERE state IS NULL) AS minimumRouteOrder
FROM locationsRoute