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 
	)
相关推荐
l1t12 分钟前
DeepSeek总结的Postgres 查询中的读取效率问题
数据库·postgresql
whn197735 分钟前
【达梦】-544: 超出全局排序空间,请调整SORT_BUF_GLOBAL_SIZE、SORT_BUF_SIZE、SORT_BLK_SIZE
数据库
dc_001244 分钟前
MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
数据库·microsoft
w***71101 小时前
MySQL 事务的操作和四大特性
android·数据库·mysql
p***19941 小时前
MySQL中常见函数
数据库·mysql
m***06682 小时前
MySQL —— 配置文件
数据库·mysql·adb
e***13622 小时前
mysql之日期时间函数
数据库·mysql
heimeiyingwang2 小时前
如何用向量数据库构建企业级语义检索系统
数据库·mongodb·nosql·milvus
Web打印2 小时前
Phpask(php集成环境)之03安装mysql
数据库·mysql
p***19942 小时前
实操解决Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题
数据库·postgresql