我想在 postgres sql 中將 SUM 限制為 2 小時。我不想限制求和的結果,而是要求和的值。
例如下表:
在這種情況下,如果我 SUM('02:20', '01:50', '00:30', '03:00') 結果將是 07:30。
|CODE | HOUR |
| --- | ---- |
| 1 | 02:20 |
| 2 | 01:50 |
| 3 | 00:30 |
| 4 | 03:00 |
但我想要的是將 HOUR 列限制為 02:00。因此,如果值 > 02:00,它將被替換為 02:00,僅在 SUM 中。
所以 SUM 應該是這樣的('02:00', '01:50', '00:30', '02:00'),結果是 06:20
uj5u.com熱心網友回復:
用作case函式的引數:
select sum(case when hour < '2:00' then hour else '2:00' end)
from my_table
在Db<>fiddle中測驗它。
uj5u.com熱心網友回復:
它仍然不完美,但想法是這樣的:
select sum(x.anything::time) from (select id, time, case when time <= '02:00' then time::text else '02:' || (EXTRACT(MINUTES FROM time::time)::text) end as anything from time_table) x
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431097.html
標籤:sql PostgreSQL 聚合函数
