SQL中Avg(distinct)问题求教

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:06:10
CREATE TABLE T_POPULATION(
CITY VARCHAR(10) NOT NULL,
CITY_PEOPLE INT NOT NULL
)
GO
INSERT INTO T_POPULATION VALUES('A',5)
INSERT INTO T_POPULATION VALUES('B',5)
INSERT INTO T_POPULATION VALUES('A',5)
INSERT INTO T_POPULATION VALUES('A',7)
INSERT INTO T_POPULATION VALUES('B',6)
INSERT INTO T_POPULATION VALUES('C',5)
INSERT INTO T_POPULATION VALUES('A',5)
INSERT INTO T_POPULATION VALUES('B',5)
INSERT INTO T_POPULATION VALUES('A',5)
GO
SELECT AVG(DISTINCT CITY_PEOPLE) FROM T_POPULATION
SELECT * FROM T_POPULATION

请问一下高人,我这样执行以后,为什么AVG出来的值是6??觉得奇怪

这样出来的就是6
DISTINCT CITY_PEOPLE 把相同的CITY_PEOPLE去掉了 只留一个
也就是说AVG(DISTINCT CITY_PEOPLE)把7个相同的‘5’留了一个。最后只有一个5,一个6,一个7 再AVG不就是6了吗

DISTINCT 相同值只取一次,你去掉这个就是5了