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 
	)
相关推荐
松仔log17 分钟前
JetPack——Paging3+Room
android·java·zoom
这个DBA有点耶5 小时前
DBA的AI助手:向量检索与NL2SQL入门
数据库·人工智能·postgresql·学习方法·dba
Lei活在当下6 小时前
先用起来,再理解,关于协程Coroutine应该知道的事
android·java·jvm
kernelcraft6 小时前
cuongpmyoutube-dl-android:多平台视频下载的Android客户端
android·其他
basketball6166 小时前
SQL 常用数据格式化操作方法总结
数据库·sql
佚泽7 小时前
Android Studio 如何配置gradle
android·ide·android studio
TE-茶叶蛋7 小时前
数据库-引用完整性(referential integrity)
数据库
IronMurphy7 小时前
MySQL拷打第二讲
数据库·mysql
裴东青9 小时前
ProxySQL实现MySQL主从集群的读写分离
数据库·mysql·adb
handler019 小时前
【MySQL】教你库与表的增删查改操作(基础)
运维·数据库·笔记·sql·mysql·数据·分析