问题描述
假设我在 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 (将#修改为@)