2013-09-26 68 views
-1

我有4個列的表:產品,公司,收入,單位最大值和另一列值

出於這個我想在一列中,最大值,最小值,平均值,標準偏差爲收入不同的產品名稱並且該產品的單位是單獨的列,以及在另一個產品中產生該產品的最高收入的公司名稱。在下一個我想要的收入的百分比(在該產品的總收入中)。

我想要這個表中的每一個產品。有關如何做的建議?

我能夠獲得最大,最小,平均值,標準開發和產品,但無法獲取該公司的名稱,該最大收入對應於該產品的最大收入。

+1

的列是無類型,沒有樣本數據和你有什麼trieed? –

+0

您可以添加此查詢的相關表格信息嗎? –

+0

我是新來的sql和不知道很多。 (產品,公司是varchar; 收入,單位是浮動) – Abhishek

回答

1

對於相應於最大收入的公司,您可以在您的select語句中執行類似操作。

select company from table where revenue = 
(select max(revenue) from table where products = currentProduct) 
0

您可以使用ranking functions:可用

WITH CTE AS 
(
    SELECT products, company, revenue, units, 
     MaxRevenue = MAX(revenue) OVER (PARTITION BY products), 
     MinRevenue = MIN(revenue) OVER (PARTITION BY products), 
     AvgRevenue = AVG(revenue) OVER (PARTITION BY products), 
     STDEV_Revenue = STDEV(revenue) OVER (PARTITION BY products), 
     MaxUnits = MAX(units) OVER (PARTITION BY products), 
     MinUnits = MIN(units) OVER (PARTITION BY products), 
     AvgUnits = AVG(units) OVER (PARTITION BY products), 
     STDEV_Units = STDEV(units) OVER (PARTITION BY products), 
     Percent_Revenue = Max(Revenue)OVER (PARTITION BY products)/SUM(Revenue) OVER (PARTITION BY products),   
     ProductNum = ROW_NUMBER()OVER(PARTITION BY products ORDER BY products) 
    FROM dbo.TableName 
) 
SELECT * FROM CTE 
WHERE ProductNum = 1 
+0

真棒。有效。 只有兩列: 該公司產生的最大收入佔該產品總收入的百分比是多少? 和另一列說如果是> 25否則不。 謝謝。感謝你的幫助。 – Abhishek

+0

@ Abhishek:如果你的問題得到解答,考慮接受答案。別客氣。 –

+0

我確實要求問題中的%列... – Abhishek

相關問題