MySql UNION 一行转多列

背景:DataEase饼图有特定格式,并且报表要求全部使用SQL语句获取数据

原先数据格式如下,需要行转换列

转换后结果:

原理

字段1,target作为一个不存在的字段,用于命名。
字段2,count字段是关键,将查询结果命名为统一名称,实现行转列。
UNION 拼接三句一样的SQL语句

更改后SQL

bash 复制代码
( SELECT "车位总数" AS 'target', total_num AS "count" FROM park_free_space_num ORDER BY report_time DESC LIMIT 1 ) UNION 
( SELECT "已使用车位" AS 'target', (total_num - free_space_num) AS "count" FROM park_free_space_num ORDER BY report_time DESC LIMIT 1 ) UNION
(
	SELECT
		"剩余车位" AS 'target',
		free_space_num AS "count" 
	FROM
		park_free_space_num 
	ORDER BY
		report_time DESC 
	LIMIT 1 
	)
相关推荐
lhldsg1 分钟前
智慧场馆解决方案软件开发实战:从需求分析到落地部署全流程
数据库·数据仓库·需求分析
huaweichenai1 分钟前
spring boot 实现数据库分页操作
数据库·spring boot
hunterandroid9 分钟前
Android 多渠道打包与 Gradle 构建优化实战
android·前端·kotlin
小白羊丨15 分钟前
异步任务创建接口如何幂等?
android·数据库
倔强的石头10634 分钟前
连接数失控排查:从数据库会话、应用线程池到连接池泄漏
数据库·oracle
用户09340777351437 分钟前
HarmonyOS WPS Open SDK 实践:把水印与修订收成打开策略层
android·typescript·harmonyos
sumatch41 分钟前
ESP32
android
恒拓高科WorkPlus1 小时前
企业如何搭建安全内部通讯平台|企业内部通讯平台怎么选才更安全?
jvm·数据库·安全
夜雪一千1 小时前
MySQL如何限制账号权限,最小权限原则实践
数据库·mysql
2601_962056231 小时前
EasyMarkets易信:比特币基金流入创年内新高
人工智能·mysql