我想将中值添加到以下查询中,中值显然适用于每种类型的卧室 unittypeid (已经在 group by 中),我尝试使用 PERCENTILE_CONT 但我无法弄清楚如何使其工作。
CREATE TABLE #TempListings
(
ListingId int,
Price money,
UnitTypeId int,
BedroomsAvailable int
)
INSERT INTO #TempListings VALUES(1, 1000, 1, 1)
INSERT INTO #TempListings VALUES(2, 2000, 1, 1)
INSERT INTO #TempListings VALUES(3, 3000, 1, 1)
INSERT INTO #TempListings VALUES(4, 1000, 1, 2)
INSERT INTO #TempListings VALUES(5, 2000, 1, 2)
INSERT INTO #TempListings VALUES(6, 3000, 1, 2)
INSERT INTO #TempListings VALUES(7, 1000, 2, 1)
INSERT INTO #TempListings VALUES(8, 2000, 2, 1)
INSERT INTO #TempListings VALUES(9, 3000, 2, 1)
INSERT INTO #TempListings VALUES(10, 1000, 2, 2)
INSERT INTO #TempListings VALUES(11, 2000, 2, 2)
INSERT INTO #TempListings VALUES(12, 3000, 2, 2)
SELECT BedroomsAvailable,
COUNT(listingid) AS Count,
MIN(price) AS MinPrice,
MAX(price) AS MaxPrice,
AVG(price) AS AveragePrice,
STDEV(price) as StandardDeviation,
UnitTypeId
FROM #TempListings
GROUP BY BedroomsAvailable, UnitTypeId
ORDER BY UnitTypeId
DROP TABLE #TempListings
如果重要,我正在使用 sqlserver 2019
您只想解释语法是如何工作的。但作为完整的查询
db<>在这里摆弄
在 SQL Server 中有多种计算中位数的方法。Aaron Bertrand 在What Is The Fastest Way To Calculate the Median?.
如果你想使用 PERCENTILE_COUNT 你可以这样做:
然后,您可以将其加入到您的主查询中
BedroomsAvailable
和UnitTypeId
。例如: