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 
	)
相关推荐
装不满的克莱因瓶9 分钟前
Windows下安装Dart
android·flutter·dart·移动端
心动啊12112 分钟前
简单学下chromaDB
开发语言·数据库·python
Yao_YongChao15 分钟前
adb wifi连接Android手机
android·adb·智能手机·无线连接手机·wifi连接手机
妮妮喔妮22 分钟前
redis热点key拆分和读多副本
数据库·redis·缓存
雪球不会消失了31 分钟前
MySQL(开发篇)
数据库·mysql·oracle
安果移不动33 分钟前
git Cherry-Pick合并分支上的某些commits-》Android studio
android·git·android studio
qq_3482318538 分钟前
Redis 事务(MULTI/EXEC)与 Lua 脚本的核心区别
数据库·redis·lua
whn19771 小时前
寻找listener.log
数据库
代码游侠1 小时前
学习笔记——文件I/O
linux·数据库·笔记·学习·算法
Tanjia_kiki1 小时前
无法打开新数据库 ‘test‘。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 9004)
数据库