加上json column postgres的元素

时间:2017-11-29 09:52:38

标签: json postgresql

我正在尝试在过去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 ;

我知道这不起作用,我无法找到一个可行的解决方案..我看到一些解决方案,包括使用“json_array_elemens”或“json_each”,但不能使这项工作..

请帮忙!

1 个答案:

答案 0 :(得分:1)

U可以通过以下两种方式进行查询:

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;
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 ;