我這個例子,我需要得到基於優先級的工作/任務百分比的列表:聚合函數或GROUP BY子句中嵌套查詢複雜
Priority Percentages
-----------------------
1 %25
11 %10
task_events
表:
task_events_id time missing_info job_id task_index machine_id event_type user scheduling_class priority cpu_request memory_request disk_space_request different_machines_restriction
job_id
其任務可以在多行中,所以我創建了新的列task_events_id
作爲PK,用於嵌套選擇以獲取每個作業和任務的信號行。然後應用此結果來獲得每項工作的優先級。我想出了這個查詢。這裏的主要概念是,我有11個優先級。優先考慮有很多工作。每個作業都被分配到一個優先級。
Select
tes.[priority], (tes.total_priority * 100/(select sum(tes.total_priority)from tes)) as [percentage]
From
(select
[priority], count(*) as total_priority
from
task_events as t
inner join
(select
max(task_events_id) as maxid, 1 as total
from
task_events
group by
job_id, task_index) as te on t.task_events_id = te.maxid
group by
[priority]) as tes
group by
tes.[priority]
這最好的我想出了,但總的是越來越複雜,任何建議
與此查詢我得到這個錯誤:
無效的對象名稱TES「。
while it's put'tes.total_priority'on last group by。
樣本數據和預期的結果將真正幫助解釋你想要做什麼。例如,百分比是什麼? –
每個job_id,這裏的每個工作都有優先權,我有11個優先級,每個優先級都有很多工作 – jou