2014-11-08 48 views
0

下面的查詢似乎行爲不正確。在單個字段上分組並且該字段上的平均值不同的平均值應該可以爲每個不同的平均值返回一行。如果將avg替換爲count,例如查詢將返回兩行,並且如果distinct被刪除或全部替換,則查詢返回三行。MySQL似乎有一個獨特的,平均和組的錯誤

CREATE TABLE x (x real); 
INSERT INTO x VALUES (1), (2), (3), (3); 
SELECT DISTINCT AVG(x) FROM x GROUP BY x; 

MySQL的返回:

+--------+ 
| AVG(x) | 
+--------+ 
|  1 | 
+--------+ 

Postgres的回報:

AVG 
----- 
    1 
    2 
    3 
+0

你需要什麼實際上是具有相同的O/P – 2014-11-08 06:38:13

+0

我測試的原因或解決方案我的rdbms針對MySQL和此查詢打破我的隨機查詢生成器。 – 2014-11-08 06:47:28

+0

這意味着你想輸出像postgress我對 – 2014-11-08 06:48:54

回答

0

下面的查詢返回的輸出:

AVG 
----- 
    1 
    2 
    3 

查詢

SELECT AVG(x) FROM x 
GROUP BY x; 

這裏是SQL小提琴

Demo

+0

謝謝! ------- – 2014-11-08 07:00:18

+0

我的榮幸@WayneHong – 2014-11-08 07:00:46

0

我相信你的SELECT語句必須是:

SELECT AVG(distinct x)