关闭

MYSQL学习笔记(三)

267人阅读 评论(0) 收藏 举报
分类:

今天学习的是对记录的操作,着重复习一下SELECT查询中的GROUP BY语句,ORDER BY语句

GROUP BY语句中SELECT指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT中必须包含在聚合函数中,下面是常见的

聚合函数:

下面在MYSQL中创建一张顾客在水果店消费记录表,原表:

 创建一张customers表:

 

 把上面的记录插入到表中,查询得:

下面使用GROUP BY对customer字段进行分组;

SELECT `customer`,SUM(`apple`) ,SUM(`pear`), SUM(`banana`)  FROM  `customers` GROUP BY `customer`;

注意SELECT后面的字段要以逗号分隔开。

发现上面的数据毫无顺序可言,于是我使用ORDER BY语句进行排序:

MYSQL语句为:

SELECT  `customer`,SUM(`apple`),SUM(`pear`),SUM(`banana`)  FROM `customers` GROUP BY `customer` ORDER BY  SUM(`apple`),SUM(`pear`),SUM(`banana`) DESC;

发现结果并不是我想要的,我预期的结果是SUM(`apple`),SUM(`pear`),SUM(`banana`)列都能进行降序排列,网上搜了一下才知道,当多个列要用到ORDER BY进行排序时,

它们是有先后顺序的,比如例子中的先对SUM(`apple`)这一列进行降序排列,如果排列后SUM(`apple`)中有相同的行,相同的部分再 以列SUM(`pear`)进行排序,以此类推,类似于C语言中的结构体快排。

无图无真相,下面来简单的测试一下:

在MYSQL中创建如下的一张表:

下面用语句SELECT * FROM `A` ORDER BY `aid` DESC,`bid`,`cid`;

运行结果如下:

注意ORDER BY 后面的字段之间要以逗号分隔开,ORDER BY默认的排序是升序,使用降序要用DESC。

网上有人说不能在GROUP BY和ORDER BY后面用字段的别名,对此,我测试了一下,发现是可以的。

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29185次
    • 积分:710
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:7篇
    • 译文:0篇
    • 评论:9条
    最新评论