【问题标题】:Group by PostgresSQL [duplicate]按 PostgresQL 分组 [重复]
【发布时间】:2019-04-09 07:55:53
【问题描述】:

我有以下结果

Student Form ID  | Result
-----------------------------
12               | PASSED
131              | PASSED
131              | RESIT
144              | FAIL
23               | NA

理想情况下,我希望 ID 相同,例如 131。将结果分组,以便 ID Result

Student Form ID  | Result
--------------------------------
131              | PASSED, RESIT

当我使用 group by 时,它没有给我想要的输出,我显然做错了。请给我一些关于如何实现我想要的结果的指导,即在 ID 相同的情况下,结果应该放在一行中。

【问题讨论】:

  • 尝试使用string_aggarray_agg 聚合结果。
  • SELECT id, STRING_AGG(result, ', ') AS result FROM your_table GROUP BY id

标签: sql postgresql string-aggregation


【解决方案1】:

你可以使用聚合是PostgreSQL:array_agg() 或 json_agg()

select student_form_id, array_agg(result) from your_table group by student_form_id;

【讨论】:

  • 正确但是为什么要提到json_agg,这个问题中没有json。
  • 在我看来使用 json_agg() 是安全的。输出可以轻松处理。
  • Mavis 显然在寻找 string_agg()
  • 感谢大家的帮助,string_agg 运行良好。再次感谢:)
猜你喜欢
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2021-01-11
  • 1970-01-01
相关资源
最近更新 更多