2012-08-03 69 views
0

表平均鮮明的項目>>>銷售MySQL查詢到A組中

state | date | item | px 

101 1/1/2012 tennis 2 
101 1/1/2012 soccer 10 
101 1/1/2012 crystal 100 
101 1/1/2012 soccer 10 

102 1/1/2012 crystal 100 
102 1/1/2012 tennis 2 
102 1/2/2012 tennis 2 

103 1/2/2012 tennis 2 
103 1/2/2012 crystal 100 
103 1/3/2012 soccer 10 
103 1/3/2012 crystal 100 


$query="SELECT state, MAX(date), COUNT(state), AVG(px) FROM sales GROUP BY state ORDER by state ASC"; 

...生產:

state | date | item count | avg px 

101 1/1/2012 4 30.5 
102 1/2/2012 3 34.67 
103 1/3/2012 4 53 

問:如何查詢進行修改,以產生平均PX DISTINCT項目在每個州? (代替在每個狀態的所有項目的平均PX的)

例如,平均爲狀態101應當/將是(2 + 10 + 100)/ 3 = 37.33;即1個網球,1個足球和1個結晶的平均px。

08-04-12編輯>>>將第二個表中的px列標題更改爲avg px。 /爲了清晰起見編輯。謝謝。

回答

0

試試看。

編輯:添加一個內部查詢不同基於項目和狀態。

SELECT 
    state, 
    CONVERT(DATETIME, AVG(AverageDate)) AS AverageDate, 
    SUM(ItemCount) AS [item count], 
    AVG(px) AS px 
FROM 
(
    SELECT 
     state, 
     item, 
     COUNT(*) AS ItemCount, 
     AVG(CAST(date AS INT)) AS AverageDate, 
     AVG(px) AS px 
    FROM sales 
    GROUP BY 
     state, 
     item 
) 
GROUP BY state; 
+0

謝謝。你的邏輯直接導向我尋求的解決方案。我也學到了一些關於表別名的問題:)非常感謝。 – user1575233 2012-08-04 19:40:39