[英]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
子句中指定的字段的值相同。 然后,您可以使用聚合函數(例如MIN
, MAX
, SUM
, AVG
,...)從已分組在一起的行中計算值。
當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(expression [,...])僅保留給定表達式求值相等的每組行的第一行。 [...]注意,除非使用ORDER BY來確保所需的行首先出現,否則每個集合的“第一行”都是不可預測的。 [...] DISTINCT ON表達式必須與最左邊的ORDER BY表達式匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.