Eu gostaria de adicionar median à seguinte consulta, a mediana obviamente será para cada tipo de quarto, unittypeid (já no grupo por), tentei trabalhar com PERCENTILE_CONT, mas não consegui descobrir como fazê-lo funcionar.
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
Estou usando o sqlserver 2019 se for importante
Você queria apenas explicar como a sintaxe funciona. Mas como consulta completa
db<>fique aqui
Há várias maneiras de calcular a mediana no SQL Server. Aaron Bertrand percorre os principais e compara seu desempenho em Qual é a maneira mais rápida de calcular a mediana? .
Se você quiser usar PERCENTILE_COUNT, pode fazer desta forma:
Você pode então juntar isso de volta à sua consulta principal em
BedroomsAvailable
eUnitTypeId
.Por exemplo: