mysql先排序再分组筛选_mysql 怎样先排序再分组

权游游牧族:众所周知!一句SqL语句不能先排序再分组。所以这里给出几个案例

--表结构--

create table `shop` (

`id` int (10) PRIMARY KEY,

`shop_name` varchar (100),

`item_name` varchar (100),

`price` int (10)

);

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('1','小卖部','酱油','12');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('2','小卖部','醋','15');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('3','小卖部','脉动','20');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('4','小卖部','沙姜','2');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('5','超市','猪肉','24');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('6','超市','生菜','6');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('7','超市','菜心','5');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('8','连锁店','生姜','3');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('9','超市','牛肉','30');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('10','连锁店','蒜头','2');

insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('11','连锁店','黄瓜','20');

对价格price进行排序然后再根据商店类型shop_name进行分组查询

select * from (select * from shop order by price desc) a GROUP BY a.shop_name

330e0b221e92cb84ef3f4d3cb63120f4.png

c38bf0b6b1296014277e3b67530460e0.png

结果只是按照表数据的顺序,简单地进行了分组查询操作,但是这时候我们还不能下结论说这条sql就是错误的,我们用另一个数据库版本(MySql 5.5.57)测试一下。

89745cb9a9a89276ad1a36e23501c92a.png

f93d4210e9320aab4e898eed6c64b549.png

最后放上相应的解决办法:

-方法一,仅适用于低于5.7版本的MySql--

select * from (select * from shop order by price desc) a GROUP BY a.shop_name;

--方法二--

select * from (select * from shop order by price desc limit 999999) a GROUP BY a.shop_name;

--方法三--

select * from shop a where N > (select count(*) from shop b where b.shop_name = a.shop_name and a.price < b.price) order by a.shop_name,a.price desc;

PS:方法二中使用limit,需要limit的范围足够大能包括所有数据,并且每种分类只会显示一条数据,但是数据较多时运行效率要比方法三快上很多,方法三能够控制每种分类显示多少条数据,把N换成需要显示对应的数字即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

composer 路径_深入学习Composer原理(三)

本系列第三篇文章&#xff0c;一起了解下PSR规范中的PSR4和PSR0规范首先恭喜大家&#xff0c;包括我自己&#xff0c;坚持到了现在。这篇文章之后&#xff0c;Composer的基础原理就清晰明了咯。也就是说&#xff0c;Composer所利用的正是spl_autoload_register()和PSR4规范&…

科普丨深度学习 vs 概率图模型 vs 逻辑学

来源&#xff1a;人工智能爱好者俱乐部 概要&#xff1a;许多早期的人工智能工作都是关注逻辑、自动定理证明和操纵各种符号。John McCarthy于1959年写的那篇开创性论文取名为《常识编程》也是顺势而为。 今天&#xff0c;我们一起来回顾过去50年人工智能(AI)领域形成的三大范式…

如何查看mysql8.0的默认密码_MySQL8.0安装之后查找默认密码

MySQL8.0和MySQL5.7具有众多不同之处,此处不赘述。这里,只简单讲讲在安装过程中遇到的问题之一和解决办法: MySQL8.0安装完成之后的默认密码是多少?如何修改初始密码? 1 启动MySQL服务 启动MySQL服务的命令: shell> sudo service mysqld start Starting mysqld:[ OK ]…

浅析未来大数据的发展趋势

来源&#xff1a;36大数据 概要&#xff1a;随着我国进入大数据时代&#xff0c;很多人对于大数据的发展趋势还处于懵懂的状态&#xff0c;充分提升大数据的应用对于我国各个行业&#xff0c;都会有非常重要和有效的指导性作用。 随着我国进入大数据时代&#xff0c;很多人对于…

mysql update nowait_MySQL 8.0新特性 -- nowait以及skip locked

如果某行记录被事务锁住了&#xff0c;select ... for update、或select ... for share事务对相同的行加锁的时候必须等待&#xff0c;直到产生阻塞的事务释放锁。为了避免等待事务释放锁定的行&#xff0c;nowait和skip locked选项可以被用于select ... for update或select ..…

微软 CEO 纳德拉访谈:人工智能的大方向与未来是什么?

来源&#xff1a;36氪 概要&#xff1a;我们都对科技的发展抱有乐观的态度&#xff0c;我们坚信&#xff0c;人工智能带来的挑战是让我们和社会定义什么是真正的人类。未来将会是一个人工智能强化和增强人类能力的世界&#xff0c;而不是让人类变得更加无用。 人工智能的未来到…

mysql主从是同步还是异步_mysql主从同步异步场景的分析

之所以进行这块内容的研究&#xff0c;主要针对之前遇到的两个未解的疑惑&#xff1a;a&#xff0e; 线上有个系统&#xff0c;半同步状态经常从半同步变成异步&#xff0c;然后又马上恢复为半同步&#xff0c;具体原因未明&#xff0c;虽然之前也猜得八九不离十&#xff0c;但…

不用恐惧AI的高速发展,论击败阿法狗(零)最简单的方法

作者&#xff1a;刘锋 计算机博士&#xff0c;互联网进化论作者 10月19日凌晨&#xff0c;在国际学术期刊《自然》&#xff08;Nature&#xff09;上发表的一篇研究论文中&#xff0c;谷歌下属公司Deepmind报告新版程序AlphaGo Zero&#xff1a;从空白状态学起&#xff0c;在无…

mysql不能设置密码_mysql不能设置密码

你的位置:问答吧-> FreeBSD-> 问题详情mysql不能设置密码ports安装mysql-4.0.15,设置密码时&#xff1a;# mysqladmin -u root password 2568723630mysqladmin: unable to change password; error: Access denied for user: localhost to database mysql也不能添加数据库…

神经网络中的「注意力」是什么?怎么用?

来源&#xff1a;转载自公众号「雷克世界」微信号&#xff1a;ROBO_AI 编译&#xff1a;嗯~阿童木呀、多啦A亮 概要&#xff1a;神经网络中的注意力机制&#xff08;Attention mechanisms&#xff09;&#xff0c;也被称为“神经注意力”或“注意力”&#xff0c;最近吸引了广泛…

redis配置mysql缓存_Redis做mysql的缓存服务器

一redis简介&#xff1a;redis 是一个高性能的 key-value 数据库。 redis 的出现,很大程度补偿了memcached 这类 keyvalue 存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了 Python,Ruby,Erlang,PHP 客户端,使用很方便。Redis 的所有数据都是保存在内存中,然…

2018 年将打响 AI 战争,7 条实战经验帮你战胜恐惧

来源&#xff1a;36氪 概要&#xff1a;不管是对科技巨头还是对创业公司&#xff0c;人工智能可以说是移动互联网时代以来最大的一个机遇。但是&#xff0c;人工智能同时也是让大多数人感到非常困惑的一项新技术&#xff0c;对它的发展现状和未来都非常迷惑。 不管是对科技巨头…

debconf-set-selections mysql_docker 静默安装mysql

1.功能作用在debconf database中插入默认值2.位置/usr/bin/debconf-set-selections3.格式用法debconf-set-selections [-vcu] [file]4.主要参数123-v,--verbose显示运行过程信息-c,--checkonly只检查输入文件的格式-u,--unseen在预置参数时&#xff0c;不设置‘seen‘标识5.应用…

人工智能对医疗行业影响的专题研究:基本结论

来源&#xff1a;本翼资本 概要&#xff1a;从未来5-7年的中期来看&#xff0c;我们认为计算智能和部分感知智能将迎来机会&#xff0c;计算智能的基因检测和药物发现、感知智能中的医疗智能语音、医疗智能视觉、可穿戴医疗设备等将迎来爆发。 从未来5-7年的中期来看&#x…

谷歌的量子计算机如何改变世界

来源&#xff1a;网易科技 概要&#xff1a;“可正常运作的话&#xff0c;量子计算机将会改变整个世界&#xff0c;改变事物的运作方式。”硅谷知名风投Andreessen Horowitz合伙人、物理学家维贾伊潘德&#xff08;Vijay Pande&#xff09;说道。 10月17日消息&#xff0c;华尔…

layer加载的页面偶尔出现空白_Layer-Cake 模式的设计

人们通常不会阅读网页&#xff0c;应用程序甚至文章或文本段落中的每个单词。相反&#xff0c;他们经常进行浏览 -因为他们在许多网站上的经验告诉他们&#xff0c;浏览可以用更少的时间和精力来提供几乎相同的价值(即信息量)。页面的可视化布局结构方式在人们浏览内容方面起着…

未来30年的科技发展趋势

来源&#xff1a;DeepTech深科技、全球创新论坛 概要&#xff1a;20项最值得关注的科技发展趋势&#xff0c;带你通向未来。 美国公布了一份长达35页的《2016-2045年新兴科技趋势报告》。该报告是在美国过去五年内由政府机构、咨询机构、智囊团、科研机构等发表的32份科技趋势相…

mysql dns反向解析_Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)时间&#xff1a;2019-01-19 11:28作者&#xff1a;网友投稿MySQL数据库收到一个网络连接后&#xff0c;首先拿到对方的IP地址&#xff0c;然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名…

[机器人-3]:开源MIT Min cheetah机械狗设计(三):嵌入式硬件设计

目录 概述&#xff1a; 1、硬件组成 2、通信速率 3、通信协议 4、mbedOS 概述&#xff1a; 以1条腿进行设计&#xff0c;其它腿也一样&#xff1a; 腿部硬件组成 1、硬件组成 1&#xff09;UP board计算机板卡&#xff08;Linux OS&#xff09;&#xff1a; 腿部控制器…

AlphaGo Zero的伟大与局限——ResNet作者、旷视研究院院长孙剑深度评述

来源&#xff1a;Megvii旷视科技 概要&#xff1a;2017年10月19日&#xff0c;Deepmind 团队发布强化版的 AlphaGo Zero&#xff0c;该版本的 AlphaGo 实现了在 AI 发展中非常有意义的一步——“无师自通”&#xff0c;这也让去年败在未升级版本 AlphaGo Master 下的中国棋手柯…