WITH
first_query AS
(
SELECT house_id, room_id, COUNT(DISTINCT furniture_id) AS total_furniture
FROM xyz
WHERE house_id IN ('1234', '5678', '9012')
GROUP BY 1,2
)
SELECT DISTINCT
house_id,
percentile_cont (0.5) WITHIN group (order by total_furniture) OVER(PARTITION BY house_id) AS p50,
percentile_cont (0.9) WITHIN group (order by total_furniture) OVER(PARTITION BY house_id) AS p90
FROM
first_query
你好
我正在用SQL编写我的第一个窗口函数。我想知道是否有可能优化此查询。似乎我不需要编写第一个子查询来计算不同的furniture_id结果。
我尝试在Windows上使用COUNT函数,但是没有用。经过一些搜索后,如果没有一些复杂的解决方法,似乎无法在窗口函数中使用“ DISTINCT”。
论坛问题: 是否可以通过消除第一个子查询来优化/简化此查询?
期望的查询结果: 要为每个house_id显示一行,这将提供整个房间内不同家具组的百分比结果(P50和P90)。
感谢任何想法并支持我的学习!