我试图对过去 24 小时的 json 列中特定类型的所有元素求和,但无法弄清楚我的查询。
所以我有一个名为 data 的 json 列,我希望“live”键具有过去 24 小时内所有“live”的总和,为此我试图做这样的事情
select sum(data->>'live'::json)
from probing
where device_id='f051b333-8f1f-4e65-9acc-e76470a87f47'
and timestamp > current_timestamp - interval '1 day'
order by timestamp desc;
Run Code Online (Sandbox Code Playgroud)
我知道这行不通,而且我无法找到可行的解决方案。我看到了一些解决方案,包括使用“json_array_elemens”或“json_each”,但无法完成这项工作。
Cát*_*tos 11
我带来了这个解决方案:
select
sum(cast(data->>'live' as integer))
from
probing
where
device_id='f051b333-8f1f-4e65-9acc-e76470a87f47'
and timestamp > current_timestamp - interval '1 day';
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以通过两种方式查询:
select sum((data->>'live')::int)
from probing
where device_id='f051b333-8f1f-4e65-9acc-e76470a87f47'
and timestamp > current_timestamp - interval '1 day'
order by timestamp desc;
Run Code Online (Sandbox Code Playgroud)
select sum(cast(data->>'live' as int))
from probing
where device_id='f051b333-8f1f-4e65-9acc-e76470a87f47'
and timestamp > current_timestamp - interval '1 day'
order by timestamp desc ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7976 次 |
| 最近记录: |