我可以在sqlite中使用group来使用所有行吗?

时间:2020-03-20 20:09:48

标签: sqlite group-by

这是一个示例,表如下:

ID  NAME       CATEGORY 
1   vue        javascript
2   django     python
3   node       javascript
4   flask      python

是否有可能获得像这样的分组结果?

[
 [{id: 1, name: vue, category: javascript}, {id: 3, name: node, category:javascript}],
 [{id: 2, name: django, category: python}, {id: 4, name: flask, category: python}]
]

我尝试使用group by(category)group_concat(),但结果如下:

[
{'id': xxx, name: xxx, category: javascript}, {'id': xxx, name: xxx, category: python}
]

每个类别仅返回一个数据,而不是我想要的分组。

2 个答案:

答案 0 :(得分:0)

我认为你想要这个:

select 
  group_concat('{id: ' || id || ', name: ' || name || ', category: ' || category || '}') col
from tablename  
group by category

请参见demo
结果:

| col                                                                                |
| ---------------------------------------------------------------------------------- |
| {id: 1, name: vue, category: javascript},{id: 3, name: node, category: javascript} |
| {id: 2, name: django, category: python},{id: 4, name: flask, category: python}     |

答案 1 :(得分:0)

这看起来很像JSON减去引号,我必须假设这就是您要的。输入JSON1扩展名:

[
  [
    {
      "id": 1,
      "name": "vue",
      "category": "javascript"
    },
    {
      "id": 3,
      "name": "node",
      "category": "javascript"
    }
  ],
  [
    {
      "id": 2,
      "name": "django",
      "category": "python"
    },
    {
      "id": 4,
      "name": "flask",
      "category": "python"
    }
  ]
]

返回(漂亮打印后)

inline

如果您不希望使用双引号,则在使用结果时无论如何都将其删除很简单。

相关问题