简单谈谈MySQL数据透视表
作者:hebedich 发布时间:2024-01-25 05:42:07
标签:MySQL,数据透视表
我有一张这样的产品零件表:
部分
part_id part_type product_id
--------------------------------------
1 A 1
2 B 1
3 A 2
4 B 2
5 A 3
6 B 3
我想要一个返回如下表格的查询:
product_id part_A_id part_B_id
----------------------------------------
1 1 2
2 3 4
3 5 6
在实际实施中,将有数百万个产品部件
最佳答案
不幸的是,MySQL没有PIVOT功能,但您可以使用聚合函数和CASE语句对其进行建模.对于动态版本,您需要使用预准备语句:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when part_type = ''',part_type,''' then part_id end) AS part_','_id'
)
) INTO @sql
FROM
parts;
SET @sql = CONCAT('SELECT product_id,',@sql,'
FROM parts
GROUP BY product_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
如果您只有几列,那么您可以使用静态版本:
select product_id,max(case when part_type ='A' then part_id end) as Part_A_Id,max(case when part_type ='B' then part_id end) as Part_B_Id
from parts
group by product_id
总结
以上是脚本之家为你收集整理的MySQL动态透视全部内容,希望文章能够帮你解决MySQL动态透视所遇到的程序开发问题。


猜你喜欢
- 本文整理了关于Javascript表单验证的所有涉及到的,大家仔细阅读一定会有所收获的 //验证字符串非空 var Validat
- 一、安装插件npm install -D vuedraggable二、在需要排序的界面中引入组件<script>import d
- 特殊方法一览在 Python 的学习和使用过程中, 你一定碰到过一些 特殊方法, 它们开头和结尾都有两条下划线, 也叫魔法方法 (Magic
- CREATE TABLE table1( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nva
- 突然想到了之前一直没留意的for循环中开goroutine的执行顺序问题,就找了段代码试了试,试了几次后发现几个有意思的地方,我暂时没有精力
- 可以使用Python的email模块来实现带有附件的邮件的发送。SMTP (Simple Mail Transfer Protocol)邮件
- 在开发 vue 的时候,我们可以使用 watch 和 computed 很方便的检测数据的变化,从而做出相应的改变,但是在小程序里,只能在数
- 最近发生了很多事情,工作不开心,爱情无果而终,身边的小伙伴陆陆续续离职。虽然都不是会一下子击垮自己的事情,但是积攒起来,还是会有突然感到疲惫
- 微信小程序作为一种轻量级的应用形式,在移动互联网领域取得了极大的成功。作为 Python 开发者,如何在微信小程序的开发中发挥 Python
- 需求背景在很多时候我们需要抽取视频的某一帧做一些分析或修改等;比如笔者需求就是判断一个人在该视频中出现的频率,以判断他是否是这段视频的主角;
- 一主一从: Master: OS:centos release 5.6 DB:mysql 5.5.8 IP:192.168.1.2 Slav
- 一个单步的动作,用了这个脚本,就可以重复执行100遍1000遍。上面就是一个路径描边100遍的效果,吼吼~ 不知道大家明白用处没有?(以前老
- 如果你正在运行使用MySQL的Web应用程序,那么你把密码或者其他敏感信息保存在应用程序里的机会就很大。保护这些数据免受黑客或者窥探者的获取
- 导语:近年来,全世界都纷纷投身网络热潮。从小企业到大公司,再到网络学校和大学,大家都在努力提升自己的网络影响力,这样既免费为自身品牌做广告,
- 一、下载1、下载安装包mysql下载路径:https://dev.mysql.com/downloads/file/?id=4967452、
- EdgePool简介EdgePool是一种用于图分类的卷积神经网络(Convolutional Neural Network,CNN)模型。
- 创建表时创建外键创建两个表格,一个名为class,create table classes(id int not null primary
- 一、说明压缩和解压缩是日常常用的操作,不管是windows上图形界面的操作,还是linux上用命令来进行压缩解压缩,总的而言都还是比较方便的
- 本文实例讲述了python实现将pvr格式转换成pvr.ccz的方法。分享给大家供大家参考。具体实现方法如下:import zlibimpo
- PHP信息函数包含的一些函数概念总结如下。PHP信息函数之getenv适用版本:PHP3, PHP4函数功能:取得环境变量数值。函数语法:s