我有一个带有模板和响应表的Postgrs数据库,每个模板定义了它有多少行和项目,响应将项目放在行中.我希望能够查询一个合并的响应与"平均"放置在所有响应为任何模板.
template_post
id | data |
---|---|
1 | {"items":[{"id":0},{"id":1},{"id":2},{"id":3}],"rows":[{"id":"0","title":"First row"},{"id":"1","title":"Second row"},{"id":"3","title":"Third row"},{"id":"4","title":"Fourth row"}]} |
2 | ... |
response_post个
id | template_id [FK] | data |
---|---|---|
1 | 1 | {"filled_rows":[{"row_id":4,"item_ids":[0,1,3]}]} |
2 | 1 | {"filled_rows":[{"row_id":2,"item_ids":[2]}]} |
3 | 1 | {"filled_rows":[{"row_id":0,"item_ids":[1]},{"row_id":2,"item_ids":[2]},{"row_id":4,"item_ids":[3]}]} |
在这种情况下,查询应该返回以下合并响应:
{
"filled_rows": [
{
"row_id": 0,
"item_ids": [1]
},
{
"row_id": 2,
"item_ids": [2]
},
{
"row_id": 4,
"item_ids": [0,3]
}
]
}
在不明确的情况下,当一个项目在多个行中出现相同次数时,它应该放在这些行的第一行.