我有4個列的表:產品,公司,收入,單位最大值和另一列值
出於這個我想在一列中,最大值,最小值,平均值,標準偏差爲收入不同的產品名稱並且該產品的單位是單獨的列,以及在另一個產品中產生該產品的最高收入的公司名稱。在下一個我想要的收入的百分比(在該產品的總收入中)。
我想要這個表中的每一個產品。有關如何做的建議?
我能夠獲得最大,最小,平均值,標準開發和產品,但無法獲取該公司的名稱,該最大收入對應於該產品的最大收入。
我有4個列的表:產品,公司,收入,單位最大值和另一列值
出於這個我想在一列中,最大值,最小值,平均值,標準偏差爲收入不同的產品名稱並且該產品的單位是單獨的列,以及在另一個產品中產生該產品的最高收入的公司名稱。在下一個我想要的收入的百分比(在該產品的總收入中)。
我想要這個表中的每一個產品。有關如何做的建議?
我能夠獲得最大,最小,平均值,標準開發和產品,但無法獲取該公司的名稱,該最大收入對應於該產品的最大收入。
對於相應於最大收入的公司,您可以在您的select語句中執行類似操作。
select company from table where revenue =
(select max(revenue) from table where products = currentProduct)
您可以使用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
的列是無類型,沒有樣本數據和你有什麼trieed? –
您可以添加此查詢的相關表格信息嗎? –
我是新來的sql和不知道很多。 (產品,公司是varchar; 收入,單位是浮動) – Abhishek