MySQL如何美化JSON_ARRAYAGG/JSON_OBJECT的SQL查询?

问题描述

假设我在 salary_table 中有一些示例数据,如下所示:

    id     name        year            avg_salary
   --------------------------------------------
1   1    alice        2019         17410.407500
2   2    elsa         2020        14562.580000
3   3    edward       2019         15234.580000
4   4    anna         2021         15934.580000
.....
99  999    mike         2019        7410.407500
100 1000    mike         2020       17410.407500

我尝试使用下面的sql可以得到我需要的结果,

SELECT
concat(id,'/',name),JSON_ARRAYAGG(
                JSON_OBJECT(
                        "year",year,"avg_salary",avg_salary
                )
        ) as detail
FROM salary_table
GROUP BY 1
ORDER BY 1 ASC

但是上面的结果很丑,

id/name   detail
----------------------
1/alice      [{"year": 2019,"avg_salary": 17410.407500},{"year": 2020,"avg_salary": 21331.052857},{"year": 2021,"avg_salary": 19101.316667}]
2/elsa       [{"year": 2020,"avg_salary": 14562.580000}]
3/edward     [{"year": 2019,"avg_salary": 15234.580000}]
4/anna       [{"year": 2021,"avg_salary": 15934.580000}]
5/ann        [{"year": 2020,"avg_salary": 11331.052857},"avg_salary": 9101.316667}]
6/cathy      [{"year": 2018,"avg_salary": 7410.407500},{"year": 2019,"avg_salary": 9101.316667}]

我的完美输出如下,实际上,我的结果中不需要 JSON_ARRAYAGG:

-----------------
id  name 2018_avg_salary   2019_avg_salary   2020_avg_salary   2021_avg_salary
1  alice  17410.4075       21331.05286       21331.05286   21331.05286
2  elsa   17411.4075       21332.05286       21332.05286   21332.05286

如何美化MysqL中JSON_ARRAYAGG/JSON_OBJECT的SQL查询

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...