簡體   English   中英

POSTGRES最小值/最小值

[英]POSTGRES min/least value

我有兩列的postgres 9.3表。 第一列有時間,第二列有路線。 一條路線可能有多次。 我想列出所有具有最短時間的路線。 我的桌子:

Times      Routes
07:15:00    Route a
09:15:00    Route a
08:15:00    Route b
11:30:00    Route b
09:15:00    Route c
12:00:00    Route c

我想要的輸出:

 Times        Routes
 07:15:00     Route a
 08:15:00     Route b
 09:15:00     Route c 

任何幫助將不勝感激,並在此先感謝。

可以使用MIN聚合函數 ,然后按“ Routes列進行分組:

SELECT Routes, MIN(Times) FROM Table GROUP BY Routes

GROUP BY子句用於將行分組為單個行,這些行的值與GROUP BY子句中指定的字段的值相同。 然后,您可以使用聚合函數(例如MINMAXSUMAVG ,...)從已分組在一起的行中計算值。

GROUP BY子句與聚合函數結合使用時,它很有用。 對於您的問題,要找到所有輸入值在路由中的最小值,可以使用GROUP BY子句分成幾組,對於每個組,您將使用MIN聚合函數計算時間。

您可以使用group by select routes, min(times) from your_table group by routes來實現此select routes, min(times) from your_table group by routes

select distinct on(routes) routes
      ,times 
from p 
order by routes,times asc 

DISTINCT ON

將返回表達式相等的每組行的“ 第一 ”行。

根據文檔

DISTINCT ON(expression [,...])僅保留給定表達式求值相等的每組行的第一行。 [...]注意,除非使用ORDER BY來確保所需的行首先出現,否則每個集合的“第一行”都是不可預測的。 [...] DISTINCT ON表達式必須與最左邊的ORDER BY表達式匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM