mysql创建视图遇到问题

图片说明

我有一个上面的表,下面是我想要的视图,年级 专业 学院是范围
求大神帮忙!!!

0

4个回答

select a.学号,a.年级,a.学院,a.专业 ,a.学习成绩 ,b.学习专业排名 , a.德育成绩,c. 德育专业排名 from 表 as a
left join (select 学号,学习成绩 ,row_number() as 学习专业排名 from 表 order by 学习成绩 desc) as b on b.学号 = a.学号
left join (select 学号,学习成绩 ,row_number() as 德育专业排名 from 表 order by 学习成绩 desc) as c on c.学号 = a.学号

兄弟你转换下,绝对o K,别忘了采纳啊

0
qq_41765756
qq_41765756 回复苏叶biubiu: 兄弟还在吗?我的第二条回复若解决了问题,给采纳下吧,谢谢
一年多之前 回复
wendy1234678
wendy1234678 回复qq_41765756: 第二条是对的
一年多之前 回复
wendy1234678
wendy1234678 有错字哦,第二行,order by
一年多之前 回复
qq_41765756
qq_41765756 回复苏叶biubiu: 搞出来了,你看第二条回复吧
一年多之前 回复
qq_41765756
qq_41765756 回复苏叶biubiu: 不着急的话就休息吧,明天上午弄出来
一年多之前 回复
qq_41765756
qq_41765756 回复苏叶biubiu: 我好久没用mysql了,得重新下载一个GUI,网比较慢,你着急解决这个问题吗
一年多之前 回复
Suyebiubiu
苏叶biu 回复qq_41765756: 谢谢你,非常感谢
一年多之前 回复
qq_41765756
qq_41765756 回复苏叶biubiu: 哇,那就复杂了,得先分组了,你等我自己建个表给你写出来吧
一年多之前 回复
Suyebiubiu
苏叶biu 那个排名是指同年级,同学院,同专业内的排名
一年多之前 回复
qq_41765756
qq_41765756 回复苏叶biubiu: select id,height,(@rowno:=@rowno+1) as rowno from test,(select (@rowno:=0)) b order by height desc mysql 用这种方式替代row_number()函数,你参考下
一年多之前 回复
Suyebiubiu
苏叶biu row_number()函数mysql中没有,创建视图又不可以使用变量
一年多之前 回复
Suyebiubiu
苏叶biu 是mysql中出现的问题?应该怎么解决呢,谢谢
一年多之前 回复

图片说明
第一张图为查询效果,
图片说明
第二张图为表结构

下面则是参考查询语句
select mm.stuNumber as '学号',
mm.praent_grade as '年级',
mm.praent_college as '学院',mm.praent_major as '专业',
mm.score as '学习成绩',
mm.groupScore as '学习专业排名',
nn.meScore as '德育成绩',
nn.groupScore as '德育成绩排名' from (
select
a.stuNumber,
@group_Score:=case when @praent_grade=a.grade and @praent_college=a.college and @praent_major=a.major then @group_Score+1 else 1 end as groupScore,
@praent_grade:=a.grade as praent_grade,
@praent_college:=a.college as praent_college,
@praent_major:=a.major as praent_major,
a.score
from student a,(select @group_Score:=1,@praent_grade:='',@praent_college:='',@praent_major:='') as b
order by a.grade,a.college,a.major,a.score ) as mm
inner join (
select
a.stuNumber,
@group_Score:=case when @praent_grade=a.grade and @praent_college=a.college and @praent_major=a.major then @group_Score+1 else 1 end as groupScore,
@praent_grade:=a.grade as praent_grade,
@praent_college:=a.college as praent_college,
@praent_major:=a.major as praent_major,
a.meScore
from student a,(select @group_Score:=1,@praent_grade:='',@praent_college:='',@praent_major:='') as b
order by a.grade,a.college,a.major,a.meScore) as nn on nn.stuNumber=mm.stuNumber

记得采纳啊,兄弟

3
Suyebiubiu
苏叶biu 为了省事,我把我的列名设置和你一致了,你的代码我只是更改了student这个表名
一年多之前 回复
Suyebiubiu
苏叶biu 还是出现了问题,我在上面的回答中进行了陈述,谢谢谢谢
一年多之前 回复

兄弟,我按照你的那个代码跑的结果是有问题的图片说明
如图所示,相同的年级学院专业并没有正确的进行排名,第二点,我最希望的是能够产生一个视图供后续使用,@产生的临时变量在生成视图时会出现问题的,还是非常感谢你的

0
qq_41765756
qq_41765756 我也无能为力了,我提供的这么详细的参考,还未能解决您的问题,我很抱歉。C币是指望不上了,不想再回答任何人的问题了。
一年多之前 回复

oracle的语法,不知道能不能用:

select 学号,年级,学院,专业,学习成绩
,dense_rank() over(partion by 年级,学院,专业 order by 学习成绩 desc) as 学习专业排名
,德育成绩
,dense_rank() over(partion by 年级,学院,专业 order by 德育成绩 desc) as 德育专业排名
from 表

其中dense_rank可以根据不同的排名需要换成rank或row_number
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL视图一次踩坑经历
在调用数据库时,使用了视图,本机发现没有问题.部署到服务器出现视图调用错误,没有权限 排查后发现 视图的定义者是原来的'kikock'@'%',并且安全性设置的是definer 线上数据库没有此用户     解决方案1. 一是将所有视图的定义者修改为线上数据库有权限的用户名称               2.二是将视图安全性定义由definer设置为invoker。     de...
MySQL创建视图
查询每天的订单金额 -- CREATE VIEW order_day_amount as SELECT FROM_UNIXTIME(ctime, '%Y-%m-%d') AS order_day, sum(order_amount) / 100 as 合计 FROM `shop_order` GROUP BY order_day HAVING order_day > FROM_...
Mysql创建视图语法及其创建种类
Mysql创建视图语法及其创建种类
Mysql 视图基础和动态创建视图
视图的定义: 视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。   视图的优点: 使用视图,可以定制用户数据,聚焦特定的数据   根据不同的需求,可以创建不同的视图,满足不同的权限所能查到的数据,也能屏蔽一些隐私性信息。 使用视图,可以简化数据操作 一个复杂的查询创...
Linux:MySQL(五)创建视图与函数
视图 视图:VIEW,虚表,保存有实表的查询结果 创建方法:CREATE VIEW view_name AS .. 查看视图定义:SHOW CREATE VIEW view_name 删除视图:DROP VIEW view_name 查看创建时命令:SHOW CREATE VIEW view_name 可从库查看Comment:VIEW是否为虚拟表:SHOW TABLE STATUS F...
mysql创建视图时字符集问题的解决办法
创建视图时,如果在语句中包含中文时,可能会报1276的异常,解决办法:使用convert('中文字符' as utf8)
mysql视图之创建可更新视图
我们知道,在mysql中,视图不仅是可查询的,而且是可更新的。这意味着我们可以使用insert或update语句通过可更新视图插入或更新基表的行。 另外,我们还可以使用delete语句通过视图删除底层表的行。但是,要创建可更新视图,定义视图的select语句不能包含以下任何元素:聚合函数,如:min,max,sum,avg,count等。DISTINCT子句GROUP BY子句HAVING子句左连...
在Navicat中创建MySQL动态视图的方法
在Navicat中创建MySQL动态视图的方法,附图解。
MySQL——创建视图
    创建视图是指在已经存在的数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。一.    查看用户是否具有创建视图的权限    创建视图需要具有  CREATE  VIEW  的权限,同时应该具有查询涉及的列的  SELECT  权限。可以使用  SELECT  语句来查询这些权限信息,查询语法如下:    SELECT   Select_priv, Create_view_p...
mysql 建立视图
CREATE OR REPLACE VIEW V_HOS_EXPENSE (advice_id, client_id, sickroom, org_id, code, med_name, med_nname, unit_per, medicare, med_seqid, advice_property, doc_id, amount, send_num, med_price, advice_cat...
在MySQL数据库中创建视图
解释说明:视图创建是因为由于表与表之间的关系,在我写接口的时候会带出来一些有关系的数据,每个视图都是根据自己的sql语句或者是sql语句产生的 1.先看一下我的hql语句 //从Students的实体类中根据姓名和状态来查询学生的有关信息 from Students where name=:name and status=:status 2.就是在数据库中创建视图的过程 打开mysql数...
mysql使用变量创建视图
SELECT IF ((@cblnk := (ifnull(`tab_callback`.`cb_type` = 'local') - ifnull(`view_adoffer_remain_cap`.`sum(day_cap)`,0))) = - (1.1),'不限',@remain) AS `OFFER_REMAIN_CAP`,`tab_callbac...
MySQL数据库视图:视图定义、创建视图、修改视图
视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。 关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以大大降低查询的重复性。
MySQL 获取所有视图的创建脚本
SELECT CONCAT('create or replace ALGORITHM = MERGE view ',TABLE_SCHEMA,'.', TABLE_NAME,' as ',VIEW_DEFINITION,';') FROM information_schema.views; 查询结果拿到新的窗口执行、 注意库名是否正确、 ...
MySql 创建排序视图示例
       本周由于项目需求,要将oracle数据库迁移到mysql数据库中,众所周知,mysql的视图创建规则比较多,也没有oracle的一些函数,所以我在创建一个排序视图的时候就遇到了很大的问题,经过多次尝试,终于解决了,希望能给大家一些帮助!!!         mysql由于没有rank()函数,所以排名没有oracle那么简单,但是我们可以用子查询来做一个简单的排名,其中CURREN...
MySQL三张表联合创建一个新视图
联合表就需要先提到几个关键字 先说说 union all 和 union 区别: 1.UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 SELECT column_name(s)
MySQL 视图之创建、查看、修改
视图是从数据库中一个或多个表中导出来的虚拟表,方便用户对数据的操作。 数据库中只有数据的定义,没有存放视图的数据,那些数据是在原来的表里。 视图具有这些作用:数据安全;数据表与应用程序独立;简化用户的操作。 查询用户是否有select和create view的权限。 mysql> use mysql; Database changed /* 我有两个mysql,当我将WampSe
MySql 数据库查看视图的创建sql语句
在网上能找到大量的视图创建、修改、删除的语句,但是查看创建语句的语句不好找。 show create view VIEW_NAME  
mysql视图创建、修改、删除
1. 创建视图 ################################# CREATE VIEW 视图名(视图列1, 视图列2, ...) AS SELECT 表列1 as 视图列1, 表列1 as 视图列2, ... FROM 表名; #################################...
如何在navicat for MySQL 创建视图
navicat for MySQL 创建视图的步骤: 1.点击新建视图按钮 2.进入定义页面,点击sql预览,发现已经有一个"create view ‘NEWVIEW’ as",所以我们在“定义”界面只需要写查询语句即可 3.点击定义栏,写入需要查询的SQL语句,点击预览就可以看到查询出的sql语句 4.点击保存,输入视图名称,点击确定即可生成视图。
MySQL在多表上创建视图
MySQL中,在两个或者以上的基本表上创建视图在student表和stu_info表上,创建stu_class视图,查询出s_id号、姓名和班级 首先,创建stu_info表,并向表中插入数据查看表中的数据创建stu_class视图查看视图可以看出,创建的视图包含id、name和class字段 其中,id字段对应student表中的s_id字段,name字段对应student表中的name字段,
mysql用union创建视图报错1064 解决办法
一般我们建立视图会这样create view 视图名 as ( 语句) 对于涉及到union的视图创建,括号就不要了。如下 CREATE view v_HPF_JSKZ_BHFWJSKZDD1HPF_JSKZ_YCQHCQ as  select a.*,b.YCMC from HPF_JSKZ_BHFWJSKZDD1HPF_JSKZ_YCQHCQ a RIGHT  JOIN HPF_YCJCX
Mysql 8.0.11 添加视图权限
mysql不同版本,给视图添加权限的方式不一样。我安装的是MySQL 8.0.11版本的,在写8.0.11版本权限设置的过程中,会加入其他版本的一些方案,供读者参考: 1、首先都是登陆root用户 这一步没什么区别 2、选择数据库 3、查询用户相关信息 这一步可以要也可以不要 4、修改权限 这一步就是解决问题的关键,有些版本,可能在执行 update user set...
MySQL在单表上创建视图
在单表上创建视图在student表上,创建view_stu视图 首先,创建一个数据库chapter07在数据库中,创建一个表student,用于存储学生信息 向student表中,插入数据查看表中数据创建student表的视图使用视图可以看出,视图创建成功 并且,重新定义了一个计算数据和语文成绩之和的math+chinese字段默认情况下,创建的视图字段名称和基本表的字段名是一样的,但是,也可
MYSQL动态给VIEW变量,创建动态VIEW
实现思路:mysql创建view时不允许绑定用户变量,我们可以通过一个函数来返回用户变量,达到我们想要效果(通过用户变量创建动态view) 1、创建test_sp,在sp中给@company用户变量赋值 2、创建函数test_f,函数定义返回值为varchar,函数直接返回用户变量@company 3、创建视图,test_v,将函数test_f绑
mysql建立索引和视图
索引建立: 1.选表,设计表,选择栏位 2.建视图: 新建视图,写视图代码 select `parkingmessage`.`id` AS `id`,`parkingmessage`.`version` AS `version`,`parkingmessage`.`sname` AS `sname`,`parkingmessage`.`iddep` AS `iddep`,`parkin...
MySQL——视图的创建和使用
1.什么是视图视图(View)是一种虚拟存在的表。其内容与真实的表相似,包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储的数据的形式存在。行和列的数据来自定义视图时查询所引用的基本表,并且在具体引用视图时动态生成。视图的特点如下:<1> 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系;<2> 视图是由基本表(实表)产生的表(虚表);<3&g...
mysql 三张表连接建立视图
三张表连接·· A表的a字段 对应 B表的b字段 ,B表的b1字段对应C 表的c字段现在 建立 一个视图,可以同时 看到三张表的 所有信息·~create or replace view v_nameasselect t1.*,t2.*,t3.*from A表 t1, B表 t2, C表 t3where t1.a=t2.b and t2.b1=t3.c----------------------...
Mysql 开启视图权限与创建视图教程
Mysql 开启视图权限与创建视图教程
Mysql添加数据和创建视图
从头开始学习mysql,把今天的log记录一下。
MySql创建视图不支持子查询解决方案(left join)
Mysql创建视图 默认是不支持子查询 需要改变下方式 1.创建简单视图 CREATE VIEW v_user_role AS SELECT ur.user_id , ur.role_id FROM t_user_role ur 2.创建关联性视图 错误的创建方法: CREATE VIEW v_user_role AS SELECT ur.user_id , ur.role_id ,u.us...
mysql视图创建细节1349错误
        开发过程中写了一条sql,具体如下select A.name,A.userid,D.orgname,IFNULL(B.bixiuCount,0),IFNULL(B.xuanxiuCount,0),IFNULL(C.gwBX,0),IFNULL(C.gwXX,0) from (select person.personid,person.name,users.userid,person...
Mysql的远程登录
Mysql默认是不允许远程连接的,因为有很大的安全隐患。   需要手动增加可以远程访问数据库的用户。   方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%" #mysql -u root -proot mysql>use mysql; mysql>update user set ho
mysql视图实例大全
MySql视图的创建,删除,更新,修改实例使用
mysql创建视图中使用union报错1064
-- 创建视图, sql 语句加了括号, 报错。 CREATE VIEW view_test AS ( SELECT * FROM A UNION ALL SELECT * FROM B );-- 创建视图, sql 语句不加括号, 通过。 CREATE VIEW view_test AS SELECT * FROM A UNION ALL SELECT * FROM B
mysql强大功能:跨不同数据库建立视图
编辑历史: 2018.3.15 小赖 文档初始化 问题描述:如果我有数据库A和数据库B,数据库A和B属于同一个库,是否可以在MySQL中创建B数据库下的视图test,对应数据库A下的a表。我该怎么做。 解决方案:创建视图的语句为: CREATE VIEW b.test AS SELECT * FROM a.a 创建完成如下图所示。 ...
mysql的视图不存在的问题
最近写一个翻译关系代数的小程序,遇到了一个视图的问题。数据库显示不存在该视图,在网上查找了很多答案,有的说是因为用户权限问题,但是我的用户权限是所有都可以操作。总之网上的答案都要需要自己去揣摩,都不能解决我的问题。主要原因是被数据库的报错给混淆了思路,往错误的方向去查找解决。首先我使用的数据库是mysql,一个开源,简单且免费的数据库,虽然不像Oracle数据库功能庞大但是对于目前很多网页系统也足
MySQL学习随记---视图和SQL编程的 if case 和 循环
视图 定义 视图只是一个语句规则 语法 CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition 作用 (1) 可以简化查询 (2) 可以进行权限控制 视图与表关系 视图是表的查询结果, 自然表的数据变了, 影响视图结果 (1) 视图的数据与表的数据一一对应时, 可以修
SQL判断视图是否存在并创建视图
USE [ZBiddingDB] GO /****** Object: View [dbo].[VWinbidInfoBrowse] Script Date: 2018/6/20 11:46:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF EXISTS (SELECT * FROM sysobjects W...
mysql跨库关联查询(创建视图)
一、 前言 SQL CREATE VIEW 语句 什么是视图? 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。 二、使用场景: 我...