MySQL - 计算关系

时间:2016-03-16 18:01:34

标签: mysql mysql-workbench

关系的B列在表的五行中具有以下值列表: 3,NULL,2,3,5

以下哪项是AVG(DISTINCT B)的正确值?

我尝试使用指定的行创建关系表,然后执行AVG(DISTINCT A):http://ideone.com/3ItE01

 CREATE TABLE A(a int(8), b int(8), c int(8), d int(8), e int(8));
 INSERT INTO A VALUES (3, NULL, 2, 3, 5);
 INSERT INTO A VALUES (3, NULL, 2, 3, 5);
 INSERT INTO A VALUES (3, NULL, 2, 3, 5);
 INSERT INTO A VALUES (3, NULL, 2, 3, 5);
 INSERT INTO A VALUES (3, NULL, 2, 3, 5);

但我对“AVG(DISTINCT A)”的SQL查询无效。我是SQL新手,正在寻找文档。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

像这样创建表

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `value` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;

使用查询

插入值
insert  into `test`(`id`,`value`) values (1,'3'),(2,'2'),(3,'3'),(4,NULL),(5,'5');

现在使用查询

SELECT AVG( DISTINCT test.value)FROM test

计算平均值,您将获得结果3.3333333333333335