mysql 中order by 与group by的顺序

mysql 中order by 与group by的顺序 是

select

from

where

group by

order by

注意:group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group by中最大的或最小的某一字段使用 max或min函数。

例:

select sum(click_num) as
totalnum,max(update_time) as update_time,count(*) as totalarticle from
article_detail where userid =1 group by userid order by update_time desc

时间: 2024-10-10 13:28:45

mysql 中order by 与group by的顺序的相关文章

MySQL中order by中关于NULL值的排序问题

MySQL中order by 排序遇到NULL值的问题 MySQL数据库,在order by排序的时候,如果存在NULL值,那么NULL是最小的,ASC正序排序的话,NULL值是在最前面的. 如果我们想让NULL排在后面,让非NULL的行排在前面该怎么做呢? MySQL数据库在设计的时候,如果字段允许NULL值,那么对该字段进行排序的时候需要注意那些值为NULL的行. 我们知道NULL的意思表示什么都不是,或者理解成"未知"也可以,它与任何值比较的结果都是false, 默认情况下,My

MySQL中order by的实现 和 by rand() 和优化

“MySQL 里面的order by rand()”是怎么实现的.我们今天来简单说说MySQL里的order by.    几种order by的情况             香格里拉娱乐城    乍一看这个问题好像有点复杂,我们从最简单的case开始看起.    用这个表来说明:(10w行数据) 1.  最简单的order ―― order by索引字段 从explain的结果来看(Extra列),这个语句并不作排序.因为字段a已经是有顺序的.就是按照索引a的顺序依次读pk的值(在这里是隐藏的

MySQL中group_concat函数-和group by配合使用

MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码 收藏代码 select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+

MySQL中order by排序时,数据存在null咋办

order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路. 问题: 网页要实现table的行鼠标拖拽排序,我用AngularJs集成了一个TableDnD开源插件,可以实现,然后在数据库表中增加一个排序字段indexId,但是原来的大量数据是没有排序过的,所以该字段为null. 这样order by时,为null的数据就会排在最前边. 写个测试表模拟一下,如下效果: 解决办法: 最优办法:利用MySQL中的一

sql中order by和group by的区别

order by 和 group by 的区别: 1,order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. 2,group by 从英文里理解就是分组.必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段. 3,在使用group by的语句中,只能select用于分类的列(表达式),或聚合函数.where条件用于group by之前,having用于group by 之后对结果进行筛选. 扩展资料: 一.ord

MySQL中order by语句对null字段的排序

默认情况下,MySQL将null算作最小值. 如果想要手动指定null的顺序,可以使用: 将null强制放在最前: if(isnull(字段名),0,1) asc   //asc可以省略 将null强制放在最后 if(isnull(字段名),0,1) dsc if(isnull(字段名),1,0)  asc   //asc可以省略 对于这种使用方式的理解: 以if(isnull(字段名),0,1)为例,它的意思是将该字段根据是否为null值分成两部分,值为null行相当于得到了一个隐含的排序属性

MySQL中MAX函数与Group By一起使用的注意事项(转)

mysql> select * from test; +----+-------+------+-------+ | id | name | age | class | +----+-------+------+-------+ | 1 | qiu | 22 | 1 | | 2 | liu | 42 | 1 | | 4 | zheng | 20 | 2 | | 3 | qian | 20 | 2 | | 0 | wang | 11 | 3 | | 6 | li | 33 | 3 | +----+

linq中order by 和group by (含lambda表达式实现)以及综合案例

3.linq group by(多列) 1.简单的实现方式: var list = from T in Transactions group T by T.ZhiFuQuDao into g select g; 语句描述:Linq使用Group By 统计交易流水的支付渠道方式(支付宝或微信等等). 说明:这里将查询结果 命名为g,一旦重新命名,T 的作用域就结束了,所以,最后select时,只能select g. 2.分类统计各个分类的最大值(Max).最小值(Min).平均值(Average

Mysql 分页order by一个相同字段,发现顺序错乱

两次分页查询,其中跳过了2个id select * from jdp_tb_trade  where jdp_modified>='2017-04-24 20:22:01' and jdp_modified<='2017-04-24 20:23:05'   order by jdp_modified asc limit 215,5; select * from jdp_tb_trade  where jdp_modified>='2017-04-24 20:22:01' and jdp_