mysql-Mysql存储过程:统计A表数据,B表(状态表)数据行生成动态列

问题描述

Mysql存储过程:统计A表数据,B表(状态表)数据行生成动态列

A表有字段主键,编号,姓名,评价分数
B表有字段主键,key,描述
评价分数对应key
然后B表是一个状态表(比如有数据行:满意,一般,差评)
现在要统计信息:编号,姓名,(动态生成状态表里的数据)满意,一般,差评,满意率,一般率,差评率

解决方案

select a.编号,a.姓名,b.描述 from a left join b on a.评价分数=b.key

总感觉 评价分数对应key怪怪的

时间: 2024-12-07 06:49:05

mysql-Mysql存储过程:统计A表数据,B表(状态表)数据行生成动态列的相关文章

经常用到的交叉表问题,一般用动态SQL能生成动态列!

动态|问题 原始表如下格式:Class     CallDate    CallCount1 2005-8-8    401 2005-8-7    62 2005-8-8    773 2005-8-9    333 2005-8-8    93 2005-8-7    21 根据Class的值,按日期分别统计出CallCount1,CallCount2,CallCount3.当该日期无记录时值为0要求合并成如下格式:CallDate CallCount1 CallCount2 CallCou

MySQL · 源码分析 · 无法revoke单库或单表权限

现象 对于拥有全局权限的用户,无法revoke单库或单表的权限,示例如下 mysql> grant select on *.* to 'xx1'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> revoke select * test.* from 'xx1'@'localhost'; ERROR 1141 (42000): There is no such grant defined for user 'xx1' on hos

关于mysql使用存储过程插入大量数据的问题

问题描述 关于mysql使用存储过程插入大量数据的问题 创建数据库 create database ceshi; use ceshi; 创建表 create table ce( id int not null auto_increment, name varchar(50) default null, pw char(50), primary key(id)); 存储过程 delimiter // create procedure insert_ce(in item int) begin dec

mysql大数据分库和分表 php解决方案

1,主从复制,读写分离 对主库修改数据,查询使用从库.一主多从,来降低数据库读取压力. 2,分库分表 根据实体业务来分库,分表.如,根据数据的活跃性,根据用户uid等. 3,mysql 不同存储引擎区别 InnoDB 用于数据完整性/写性能要求比较高的应用. MyISAM 适合查询应用.  分表是分散数据库压力的好方法. 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库. 当然,首先要知道什么情况下,才需要分表.个人觉得单表记录条数达到百万到千万级别时就

mysql表关联只取关联表中最近一条数据

问题描述 mysql表关联只取关联表中最近一条数据 表A{id,userId,logTime} 表B{id,userId,departmentId,updateTime} 表A为数据记录 表B相当于历史记录表(userId在updateTime时间之前的departmentId) 现在表A与表B关联 但是只能让表B中符合条件的最近一记录关联上 (也是updateTime在logTime之前并且最近的一条) 我是这么做的 SELECT A.id,B.userId,B.departmentId FR

Yii+MYSQL锁表防止并发情况下重复数据的方法_php实例

本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法.分享给大家供大家参考,具体如下: lock table 读锁定 如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从表中读数据,不能进行任何写操作. lock tables user read;//读锁定表 unlock tables;//解锁 lock tables user read local;//本地读锁定表,其他线程的insert未被阻塞,update操作被阻塞 lock table 写锁定 如果一个线

MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作_Mysql

MySQL有很多的可视化管理工具,比如"mysql-workbench"和"sequel-pro-". 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的理解透彻,因为我本来就比较喜欢写代码.同时写出来这些文章,是想要给大家当个参考,希望也能对大家有所帮助,有所提升,这就是我为什么要写终端操作MySQL的文章了.   注意:MySQL数据库命令不区分大小写.但在MAC的终端,如果你想使用tab自动补全命令,那么你就必须使

mysql从表里读取一条数据后插入同一个表

这个需求很简单,就是从一个表里,读取一条数据,然后将数据修改后插入同一个表. 表(假设两个表结构一样) INSERT INTO 新表   SELECT * FROM 旧表   复制旧表的数据到新表(假设两个表结构不一样) INSERT INTO 新表(字段1,字段2,.......)   SELECT 字段1,字段2,...... FROM 旧表 只用sql语句即可完成 代码如下:  代码如下 复制代码 INSERT INTO your_table (ID, ISO3, TEXT) VALUES

Yii+MYSQL锁表防止并发情况下重复数据的方法

本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法.分享给大家供大家参考,具体如下: lock table 读锁定 如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从表中读数据,不能进行任何写操作. lock tables user read;//读锁定表 unlock tables;//解锁 lock tables user read local;//本地读锁定表,其他线程的insert未被阻塞,update操作被阻塞 lock table 写锁定 如果一个线