簡體   English   中英

PostgreSQL - 獲取所有具有最小值最大值的行

[英]PostgreSQL - Get all rows with min max value

我有一個 PostgreSQL 表,我在表中有一個 bigint 類型的 unix_time 列。

當向表中添加新行時,時間戳將添加到 unix_time 列。

我正忙於編寫 Python 腳本來提取時間 A 和時間 B 之間的所有行,我當前的解決方案是使用 while 循環遍歷表中從第一行到最后一行的每一行。

有沒有更有效的方法來做到這一點?

有沒有辦法讓我只對 select 具有給定范圍內的值的特定行 - 或具有大於或等於給定 integer 的值的行?

您將描述一個where子句:

select *
from mytable
where unix_time >= $1 and unix_time < $2

$1$2是查詢的參數,表示您要過濾的區間的范圍。

您可能想根據實際情況調整不等式; 這使用半開區間,這是一種廣泛使用的解決方案。 如果你想要一個包含兩邊的區間,你也可以使用between

where unix_time between $1 and $2

試試 BETWEEN 子句。 搜索一些很好的例子。 這是一個頁面。

https://kb.objectrocket.com/postgresql/using-the-postgres-between-sql-operator-740#:~:text=In%20PostgreSQL%2C%20BETWEEN%20is%20通常%20used%20as%20part,即%20match%20values%20found%20between%20x%20and%20y

SELECT t_name_product
FROM Products
WHERE c_price BETWEEN x AND y;

或 SELECT t_name_product 來自產品,其中 c_price > x AND c_price <= y;

請記住,如果您使用 AND 或 OR,您會得到不同的結果。

對於您關於大於或等於的最后一個問題:

SELECT t_name_product 
FROM Products
WHERE Price >= 100;

暫無
暫無

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

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