我有一個像這樣的 postgres 表:
| val_date |val_io_id|val_value|
2021-12-30 03:20:00 02 9224 30,3
2021-12-30 11:10:00 02 9224 36,9
2021-12-30 11:35:00 02 9226 2,2
2021-12-30 12:50:00 02 6645 983
2021-12-30 11:20:00 02 3884 373
2021-12-30 12:45:00 02 3464 4,05
2021-12-30 15:50:00 02 9224 3912580
2021-12-30 17:45:00 02 5296 10,1
我可以讓它作業的唯一方法是這樣......但我失去了從 val_date 發生的時間
SELECT date(val_date), min(val_value)
FROM data_store.vals_1
WHERE val_io_id=9224 and date(val_date)='2021-12-30'
Group BY date(val_date)
我想為 val_io_id 提取最小值 (val_value) 和發生日期時間 (val_date) 我想要這樣的結果:
| val_date |val_io_id|val_value|
2021-12-30 03:20:00 02 9224 30,3
謝謝
uj5u.com熱心網友回復:
使用 row_number()
cte as
(
select val_date,val_io_id,val_value, row_number()over(partition by val_io_id
order by val_value asc) as rnnmbur from data_store.vals_1
) select val_date,val_io_id,val_value where rnnmbur=1
PostgreSQL 中的另一種方式
SELECT DISTINCT ON (val_io_id), val_date,val_value
FROM data_store.vals_1 a
ORDER BY a.val_value sac
uj5u.com熱心網友回復:
謝謝,但沒有人作業:
cte as
(
select val_date,val_io_id,val_value, row_number()over(partition by val_io_id
order by val_value asc) as rnnmbur from data_store.vals_1
WHERE val_io_id=9224 and date(val_date)='2021-12-30'
) select val_date,val_io_id,val_value where rnnmbur=1
ERROR: syntax error at or near "cte"
LINE 1: cte as
^
第二:
SELECT DISTINCT ON (val_io_id) val_date, val_value
FROM data_store.vals_1
WHERE val_io_id=9224 and date(val_date)='2021-12-30'
order by val_io_id asc
它回傳當天的第一條記錄......不是最小值
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/399513.html
標籤:sql PostgreSQL的 分钟
