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 
	)
相关推荐
来来走走1 小时前
Android开发(Kotlin) LiveData的基本了解
android·开发语言·kotlin
kka杰1 小时前
MYSQL 表的增删查改-更新/删除
数据库·mysql
。puppy2 小时前
MySQL 远程登录实验:通过 IP 地址跨机器连接实战指南
android·adb
深藏bIue2 小时前
linux服务器mysql目录下的binlog文件删除
linux·服务器·mysql
甜鲸鱼2 小时前
Java与MySQL中的枚举(Enum)
java·mysql
q***44812 小时前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb
dongdeaiziji2 小时前
深入理解 Kotlin 中的构造方法
android·kotlin
风123456789~2 小时前
【OceanBase专栏】OB租户-创建实验
数据库·笔记·oceanbase
cmcm!2 小时前
学习笔记1
数据库·笔记·学习
Zero-Talent3 小时前
MySQL初级
数据库·mysql·oracle