MySQL查询所有员工的邮箱

编程入门 行业动态 更新时间:2024-10-09 09:18:47

MySQL查询所有员工的<a href=https://www.elefans.com/category/jswz/34/1769795.html style=邮箱"/>

MySQL查询所有员工的邮箱

程序开发或者一些数据统计时,在MySQL中使用GROUP BY分组是很常用的SQL语句。那么,如果如下的简单示例订单数据表,我们现需要使用GROUP BY分组后查询每个用户的第一个订单记录,应该如何实现呢?

首先,我们创建示例数据表:orders,SQL语句如下:

CREATE TABLE `orders` (

`id` int(6) NOT NULL AUTO_INCREMENT,

`email_address` varchar(45) NOT NULL DEFAULT '',

`created_on` datetime DEFAULT CURRENT_TIMESTAMP,

`price` decimal(8,2) DEFAULT '0.00',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='订单表';

数据库成功创建后,我们插入一些示例数据:

INSERT INTO orders (email_address,price)VALUES('a@a',25.55);

INSERT INTO orders (email_address,price)VALUES('b@a',20.75);

INSERT INTO orders (email_address,price)VALUES('c@a',52.35);

INSERT INTO orders (email_address,price)VALUES('c@a',20.00);

INSERT INTO orders (email_address,price)VALUES('e@a',80.85);

INSERT INTO orders (email_address,price)VALUES('a@a',95.15);

INSERT INTO orders (email_address,price)VALUES('c@a',210.55);

INSERT INTO orders (email_address,price)VALUES('f@a',57.00);

以上orders表和数据都准备好之后,最后一步则需要使用GROUP BY的SQL语句来查询按用户分组的每个用户订单价格最高的第一条记录了,如下:

SELECT MIN(O.id) AS min_id

,O.email_address

,O.price

FROM orders AS O

JOIN (SELECT A.email_address,MAX(price) AS max_price

FROM orders AS A

GROUP BY A.email_address) AS T

ON T.email_address=O.email_address AND T.max_price=O.price

GROUP BY O.email_address,O.price

执行以上GROUP  BY的分组查询,结果如下截图:

关于MySQL的查询有很多方式,本文旨在提供一种可行的实现方式,如果你有其他的实现SQL语句,欢迎留言反馈,交流。

更多推荐

MySQL查询所有员工的邮箱

本文发布于:2024-02-13 06:20:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757752.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:邮箱   员工   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!