我正在尝试在过去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”,但不能使这项工作..
请帮忙!
答案 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 ;