当前位置: 首页 > news >正文

mysql竖表变横表不含聚合

文章目录

  • 前言
  • 一、vertical_table
  • 二、转换
    • 1.要将其转换为横表形式,例如:
    • 2.sql
  • 总结


前言

在MySQL中将竖表转换为横表(也称为行转列操作),不涉及聚合函数,通常可以通过使用条件判断和自连接来实现。假设有一个竖表vertical_table,包含以下结构:


一、vertical_table

id | attribute_name | attribute_value
-------------------------------------
1  | name           | John
1  | age            | 30
1  | city           | New York
2  | name           | Alice
2  | age            | 25
2  | city           | Los Angeles

二、转换

1.要将其转换为横表形式,例如:

id | name  | age | city
------------------------
1  | John  | 30  | New York
2  | Alice | 25  | Los Angeles

2.sql

SELECTid,MAX(CASE WHEN attribute_name = 'name' THEN attribute_value END) AS name,MAX(CASE WHEN attribute_name = 'age' THEN attribute_value END) AS age,MAX(CASE WHEN attribute_name = 'city' THEN attribute_value END) AS city
FROM vertical_table
GROUP BY id;

总结

这里的关键点是利用了条件表达式 CASE WHEN 将不同的属性名 (attribute_name) 对应的值 (attribute_value) 放置到各自的列中。MAX 函数用于确保每个列中只有一个值,因为在没有聚合函数(如 GROUP BY)的情况下,单个查询可以返回多行,但是我们只需要一行。

上述查询将竖表 vertical_table 转换为横表,每个 id 对应一行,并将不同的属性作为列名,对应其值。

http://www.lryc.cn/news/376639.html

相关文章:

  • application/x-www-form-urlencoded和json的区别
  • oracle数据库日常保养或巡检语句实践整理汇总
  • Elasticsearch 第一期:基础的基础概念
  • MySQL数据库笔记(二)
  • 谷歌邮箱:2024年最全使用指南及技巧
  • 工业设计初学者手册——第四部分:制造工艺
  • Scala语言:大数据开发的未来之星 - 零基础到精通入门指南
  • Springboot整合Zookeeper分布式组件实例
  • Python | 使用Matplotlib生成子图的示例
  • 云原生巡检监控报告
  • Linux系统编程——部分内容补充
  • 数学建模基础:非线性模型
  • Kotlin 语言基础学习
  • Kafka 之 KRaft —— 配置、存储工具、部署注意事项、缺失的特性
  • 专业和学校到底怎么选,兴趣和知名度到底哪个重要?
  • 【MySQL】数据库
  • D111FCE01LC2NB70带流量调节派克比例阀
  • buuctf-findKey
  • 针对oracle系列数据库慢数据量大的问题
  • Nginx-Rewrite
  • 2024 年 Python 基于 Kimi 智能助手 Moonshot Ai 模型搭建微信机器人(更新中)
  • 关于接口多态,何时使用接口名创建对象?何时使用子类创建对象?
  • 短视频热恋进行时:成都柏煜文化传媒有限公司
  • springBoot多数据源使用、配置
  • 打破安全设备孤岛,多源威胁检测与响应(XDR)如何构建一体化安全防线
  • Android SurfaceFlinger——概述(一)
  • 工业 web4.0,UI 风格令人赞叹
  • HarmonyOS 角落里的知识 —— 状态管理
  • TDengine数据迁移
  • 使用ZIP包安装MySQL及配置教程