条件に基づいてjson配列から抽出された値の合計

Srinivasan Iyer

以下のようなテーブルにJSONフィールドがあります

{
"Ui": [
    {
        "element": "TG1",
        "mention": "in",
        "time": 123
    },
    {
        "element": "TG1",
        "mention": "out",
        "time": 125
    },        
    { "element": "TG2",
        "mention": "in",
        "time": 251
    },
    {
        "element": "TG2",
        "mention": "out",
        "time": 259
    }
]
 }

私の意図は以下のようなものを手に入れることです

| element  |   Timespent   |
|  TG1     |     2         |
|  TG2     |     8         |

しかし、完全に失敗しました。違いをどのように取得しますか(言及が入っているときのすべての時間の合計-言及がないときのすべての時間の合計)?現在、私はsum(jsonb_extract_path(data::jsonb, 'ui','hovers')->0->'when')合計を取得しようとしていますが、jsonファイルを再帰的に調べて言及のためにフィルタリングする方法を理解できません

クリン

json_array_elements()json配列から列を抽出するために使用します。

select value->>'element' as element, value->>'time' as time_spent
from my_table
cross join json_array_elements(json_column->'Ui')

 element | time_spent 
-----+------------
 TG1     | 123
 TG1     | 125
 TG2     | 251
 TG2     | 259
(4 rows)

上記のクエリを変更して、要素ごとにグループの合計を取得します。

select element, sum(time) as time_spent
from my_table
cross join lateral (
  select
    value->>'element' as element,
    case value->>'mention' when 'in' then -(value->>'time')::numeric else (value->>'time')::numeric end as time
  from json_array_elements(json_column->'Ui')) as elements
group by 1
order by 1

 element | time_spent 
---------+------------
 TG1     |          2
 TG2     |          8
(2 rows)

DbFiddle。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

文字列の配列から合計された対応する値に基づいて文字列を返す方法

分類Dev

条件に基づいて合計された列の値から新しいデータフレームを作成します

分類Dev

R-2番目のリストと混合された条件に基づいて列から値の合計を取得します

分類Dev

別の配列からの参照値に基づいて配列の値を合計する方法

分類Dev

複数の値の条件に基づいて配列から値を抽出します

分類Dev

列の値に基づいて分割されたSSIS条件

分類Dev

配列からの事前定義された値に基づいて文字列を分割する方法

分類Dev

JavaまたはPythonを使用して、特定の条件に基づいて複雑なJSONから値を抽出する

分類Dev

パンダ-条件に基づいて2つの列からX個の最後の値を合計する方法

分類Dev

合計された列の条件に基づいて行を返そうとしています

分類Dev

別の列で満たされた制限に基づいて、ある列から特定の値を抽出するにはどうすればよいですか?

分類Dev

Excel:別の列の値とマップされた値に基づいて値を合計します

分類Dev

配列内の要素に基づいてPython多次元配列から値を合計する方法は?

分類Dev

javascriptは、条件に基づいてオブジェクトのネストされた配列からプロパティ値を返します

分類Dev

別の列に基づいて値を合計してから減算する

分類Dev

Spotfireの別の列の値に基づいて計算された列

分類Dev

条件付き引数から計算された特定の分位数に基づく値で列を作成するにはどうすればよいですか?

分類Dev

golangの条件に基づいてjsonオブジェクトの配列から値を取得するにはどうすればよいですか?

分類Dev

条件に基づいて配列から値のセットを取得する

分類Dev

Pythonのしきい値に基づいて配列からサブ配列を抽出する方法は?

分類Dev

PostgreSQL:他の列からの合計結果に基づいて生成された列を作成するための最良の方法

分類Dev

配列値に基づいてハッシュの配列からハッシュを抽出する方法

分類Dev

PHPは、別の配列から選択された要素に基づいて配列要素を削除します

分類Dev

キー値に基づいてオブジェクトの配列からすべての値を抽出する

分類Dev

Excel-2つの関連する基準に基づいて値を合計し、合計された最大値を見つける方法はありますか?

分類Dev

パンダ:他の列の値の条件に基づいて他の列を合計する列を作成するにはどうすればよいですか?

分類Dev

前提条件に基づいて列(VARCHAR)から数値を抽出する

分類Dev

Numpyの他の配列に基づいて配列からデータを合計する

分類Dev

深くネストされたハッシュ配列からのキー値に基づいてハッシュ配列をマージする方法

Related 関連記事

  1. 1

    文字列の配列から合計された対応する値に基づいて文字列を返す方法

  2. 2

    条件に基づいて合計された列の値から新しいデータフレームを作成します

  3. 3

    R-2番目のリストと混合された条件に基づいて列から値の合計を取得します

  4. 4

    別の配列からの参照値に基づいて配列の値を合計する方法

  5. 5

    複数の値の条件に基づいて配列から値を抽出します

  6. 6

    列の値に基づいて分割されたSSIS条件

  7. 7

    配列からの事前定義された値に基づいて文字列を分割する方法

  8. 8

    JavaまたはPythonを使用して、特定の条件に基づいて複雑なJSONから値を抽出する

  9. 9

    パンダ-条件に基づいて2つの列からX個の最後の値を合計する方法

  10. 10

    合計された列の条件に基づいて行を返そうとしています

  11. 11

    別の列で満たされた制限に基づいて、ある列から特定の値を抽出するにはどうすればよいですか?

  12. 12

    Excel:別の列の値とマップされた値に基づいて値を合計します

  13. 13

    配列内の要素に基づいてPython多次元配列から値を合計する方法は?

  14. 14

    javascriptは、条件に基づいてオブジェクトのネストされた配列からプロパティ値を返します

  15. 15

    別の列に基づいて値を合計してから減算する

  16. 16

    Spotfireの別の列の値に基づいて計算された列

  17. 17

    条件付き引数から計算された特定の分位数に基づく値で列を作成するにはどうすればよいですか?

  18. 18

    golangの条件に基づいてjsonオブジェクトの配列から値を取得するにはどうすればよいですか?

  19. 19

    条件に基づいて配列から値のセットを取得する

  20. 20

    Pythonのしきい値に基づいて配列からサブ配列を抽出する方法は?

  21. 21

    PostgreSQL:他の列からの合計結果に基づいて生成された列を作成するための最良の方法

  22. 22

    配列値に基づいてハッシュの配列からハッシュを抽出する方法

  23. 23

    PHPは、別の配列から選択された要素に基づいて配列要素を削除します

  24. 24

    キー値に基づいてオブジェクトの配列からすべての値を抽出する

  25. 25

    Excel-2つの関連する基準に基づいて値を合計し、合計された最大値を見つける方法はありますか?

  26. 26

    パンダ:他の列の値の条件に基づいて他の列を合計する列を作成するにはどうすればよいですか?

  27. 27

    前提条件に基づいて列(VARCHAR)から数値を抽出する

  28. 28

    Numpyの他の配列に基づいて配列からデータを合計する

  29. 29

    深くネストされたハッシュ配列からのキー値に基づいてハッシュ配列をマージする方法

ホットタグ

アーカイブ