程序开发或者一些数据统计时,在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.com',25.55);
INSERT INTO orders (email_address,price)VALUES('b@a.com',20.75);
INSERT INTO orders (email_address,price)VALUES('c@a.com',52.35);
INSERT INTO orders (email_ad