mysql - 列的最大值

标签 mysql sql max

通过此脚本,我可以获得该列的最大值。

SELECT p.ploegnaam, MAX(k.punten) AS punten
FROM ploeg p,
     klassement k
WHERE p.id = k.ploeg

但是当我有两个相同的值时,它们就是最大值。我只是 获取第一个。

当该列的最大值为 20 并且该列中有 3 个值为 20 的值时,如何获取所有这些值,而不仅仅是该列中值为 20 的第一个值?

数据库脚本

/*Table structure for table `klassement` */

DROP TABLE IF EXISTS `klassement`;

CREATE TABLE `klassement` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `punten` int(2) NOT NULL,
  `ploeg` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ploeg` (`ploeg`),
  CONSTRAINT `klassement_ibfk_1` FOREIGN KEY (`ploeg`) REFERENCES `ploeg` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=latin1;

/*Data for the table `klassement` */

insert  into `klassement`(`id`,`punten`,`ploeg`) values 

(14,7,29),

(15,7,30),

(16,1,31),

(17,0,32),

(18,0,34),

(19,1,36),

(20,0,40),

(21,0,41);

/*Table structure for table `ploeg` */

DROP TABLE IF EXISTS `ploeg`;

CREATE TABLE `ploeg` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `Ploegnaam` varchar(50) CHARACTER SET latin1 NOT NULL,
  `Stadium` int(3) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `Stadium` (`Stadium`),
  CONSTRAINT `ploeg_ibfk_1` FOREIGN KEY (`Stadium`) REFERENCES `stadium` (`id`),
  CONSTRAINT `ploeg_ibfk_2` FOREIGN KEY (`Stadium`) REFERENCES `stadium` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;

/*Data for the table `ploeg` */

insert  into `ploeg`(`id`,`Ploegnaam`,`Stadium`) values 

(29,'Club Brugge',41),

(30,'Cercle Brugge',41),

(31,'België',41),

(32,'belgiê',41),

(33,'belgië',41),

(34,'belgie',41),

(35,'belgiê',41),

(36,'Mùnchen',41),

(37,'mùnchen',41),

(38,'mùnchen',41),

(39,'mùnchen',41),

(40,'mùchuo',41),

(41,'ùùùù',41);

/*Table structure for table `stadium` */

DROP TABLE IF EXISTS `stadium`;

CREATE TABLE `stadium` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `Naam` varchar(50) CHARACTER SET latin1 NOT NULL,
  `info` varchar(240) CHARACTER SET latin1 DEFAULT NULL,
  `Adres` varchar(2048) CHARACTER SET latin1 NOT NULL,
  `afbeelding` varchar(240) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

/*Data for the table `stadium` */

insert  into `stadium`(`id`,`Naam`,`info`,`Adres`,`afbeelding`) values 

(41,'Jan breydel','jan breydel in brugge','Jan Breydelstadion, Koning Leopold III-laan, Brugge, Belgi&euml','../uploads/volkswagen.jpg'),

(42,'jan','f','Kortrijk, België','../uploads/12042828_428221037364899_823789106058625890_n.jpg'),

(43,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(44,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(45,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(46,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(47,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(48,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(49,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(50,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg'),

(51,'jab','bebe','Leuven, België','../uploads/12417623_10206864642527072_5223843936076001877_n.jpg');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

谢谢

最佳答案

我认为你可以使用嵌套查询:

SELECT p.ploegnaam, k.punten AS punten
FROM ploeg p inner join klassement k on p.id = k.ploeg
WHERE k.punten = (select max(punten) from klassement )

关于mysql - 列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37344534/

相关文章:

performance - 计算移动最大值

java - 通过 ssh 运行 mysql 命令

mysql - 说明获取查询时间?

c# - MySQL - 返回不正确的 UTF8 字符

mysql - 对数据库记录使用唯一的日期时间或时间戳是个坏主意吗?

php - Mysql查询查找2列的最小值和最大值,其中1列的最小值不能等于零

php - SQLSTATE [42000]:语法错误或访问冲突:1064

sql - 如何使用 SQL 列出所有 postgres 规则?

sql - 位图索引如何工作?

excel - 使用评估语法在列范围中查找最大值,忽略错误值