Mysql如何按照日期对比数据,求SQL语句
问题描述
/*Navicat MySQL Data TransferTarget Server Type : MYSQLTarget Server Version : 50629File Encoding : 65001Date: 2016-09-05 13:57:13*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(255) NOT NULL AUTO_INCREMENT, `studentid` int(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `score` varchar(255) DEFAULT NULL, `statDate` date DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;-- ------------------------------ Records of student-- ----------------------------INSERT INTO `student` VALUES (’1’, ’1000’, ’路人甲’, ’99.9’, ’2016-09-01’);INSERT INTO `student` VALUES (’2’, ’1001’, ’路人丙’, ’98.8’, ’2016-09-02’);INSERT INTO `student` VALUES (’3’, ’1003’, ’路人丁’, ’95.5’, ’2016-09-03’);INSERT INTO `student` VALUES (’4’, ’1000’, ’路人甲’, ’90.0’, ’2016-09-02’);INSERT INTO `student` VALUES (’5’, ’1001’, ’路人丙’, ’87.5’, ’2016-09-01’);INSERT INTO `student` VALUES (’6’, ’1003’, ’路人丁’, ’77.5’, ’2016-09-01’);INSERT INTO `student` VALUES (’7’, ’1003’, ’路人丁’, ’60.5’, ’2016-09-02’);INSERT INTO `student` VALUES (’8’, ’1000’, ’路人甲’, ’80.5’, ’2016-09-03’);INSERT INTO `student` VALUES (’9’, ’1001’, ’路人丙’, ’60.8’, ’2016-09-04’);INSERT INTO `student` VALUES (’10’, ’1003’, ’路人丁’, ’50.5’, ’2016-09-04’);
数据如下:
怎么样才能用SQL语句完成(日期会每天递增,数据会每天添加)
问题解答
回答1:你的需求要自连接才能实现,效率不高。
看看这个sql能不能满足你的需求吧。
SELECT `studentid`, `name`, group_concat(`score` ORDER BY `statDate`) FROM `student`GROUP BY `studentid`
以上手敲没验证,不知道有没有错,调试一下吧。
相关文章: