我有一个查询将根据主要优先级列按存储创建计算优先级(c_priority),该查询可以很好地使用 row_number() 计算 c_priority over(按存储分区),但是我需要更进一步并且还根据 campaign_column 和优先级按 25 组对结果进行排序,这是我需要帮助的地方。我需要查询以最高优先级提取活动的前 25 条记录,然后提取以下活动的接下来的 25 条记录,一旦完成所有活动,就会返回第一个活动并提取另外 25 条记录并再次循环直到所有记录按存储顺序排列(计算优先级)为止。
如果有人可以提供有关如何实现此目标的想法,我将不胜感激,谢谢!
当前查询:
SELECT CONTACT_ID
,LEAD_NUMBER
,LEAD_CREATION_DATE
,CUSTOMER_FIRST_NAME
,CUSTOMER_LAST_NAME
,CAMPAIGN_NAME
,STORE
,MOBILE_NUMBER
,HOME_NUMBER
,WORK_NUMBER
,CELL_DO_NOT_CONTACT_FLAG
,HOME_DO_NOT_CONTACT_FLAG
,WORK_DO_NOT_CONTACT_FLAG
,PRIORITY
,ROW_NUMBER() OVER (PARTITION by store ORDER BY priority asc, campaign_name, store) AS C_PRIORITY
,HISTORICAL_DATE
FROM stores_campaigns_all
WHERE historical_date = '2023-03-10'
AND store IS NOT NULL