#sql #sql-server #window-functions
#sql #sql-сервер #окно-функции
Вопрос:
Мне нужно использовать
PERCENT_RANK() OVER(PARTITION BY monthperiod ORDER BY probability ASC) AS Rank
Следующий код является частью более крупного запроса, и он близок, но если я получу дату, близкую к началу месяца, я полагаю, что она будет сравниваться с остальной частью месяца вместо двух недель до и двух недель после.
SELECT
*,
PERCENT_RANK() OVER (PARTITION BY monthperiod ORDER BY probability ASC) AS Rank
FROM
(SELECT
*,
FLOOR(DATEPART(MONTH, [Date]) / 2) AS MonthPeriod,
CONCAT(YEAR([Date]), DATEPART(MONTH, [Date])) YearMonth
FROM
database.schema.table AS t) monthperiod
WHERE
ISNULL(Rank, 1) >= 0.90
Вероятность результатов должна быть ранжирована по тому, как эта вероятность соответствует всем идентификаторам в этом groupId в текущем месяце (две недели после и две недели до). Вот почему ранг отличается, даже если вероятности могут быть.
ID GroupID Date Probability Rank
--------------------------------------
8403 581 7/12/2018 0.75 0.98
2679 581 7/12/2018 0.85 0.99
5899 581 7/12/2018 0.95 1.00
7902 960 8/15/2019 0.85 0.98
3659 960 8/15/2019 0.75 0.96
1406 960 8/15/2019 0.95 1.00
8241 125 9/23/2020 0.95 0.96
3240 125 9/23/2020 0.75 0.90
4074 125 9/23/2020 0.85 0.92
Простите меня, если это окажется простым. Я сделал столько поисков и варьировал свой поиск, сколько мог, и не нашел решения. Я все еще новичок в SQL, поэтому, если у кого-то более опытного есть творческое решение, это было бы здорово.
Комментарии:
1. Привет, было бы действительно полезно, если бы вы могли добавить несколько строк данных и из них получить желаемый результат, и, пожалуйста, не добавляйте изображения, добавьте их в виде текста, чтобы можно было скопировать и примерить их среду.
2. Также
[Date]
является синтаксической ошибкой, если вы не живете в Microsoft. (и:select *,
красный флаг)3. в чем проблема, которую вы пытаетесь решить?
4. В настоящее время я добавляю образцы данных. Пожалуйста, вернитесь и проверьте! @JorgeCampos
5. Я думаю о рангах как о целых числах, а не о соотношениях. Можете ли вы пояснить, что такое вычисление?