我正在構建一個查詢,將建立一個基於4個表的相當大的數據集。這裏是我的查詢到目前爲止:SQL查詢,是否需要GROUP BY?如何避免不必要的複雜語法
SELECT
CLIENT_CA."Requisition_ID",
CLIENT_REQS."Requisition Title",
CLIENT_REQS."Country",
CLIENT_CD."Application_Status",
CLIENT_CA."Candidate",
CLIENT_CD."Gender",
max(case when
CLIENT_CA."Process_of_Activity" = 'Application Entry' then
CLIENT_CA."Completed_on" end) as "ENTRY",
max(case when
CLIENT_CA."Process_of_Activity" = 'Candidate Selection' then
CLIENT_CA."Completed_on" end) as "Selection",
max(case when
CLIENT_CA."Process_of_Activity" = 'Job Offer' then
CLIENT_CA."Completed_on" end) as "Offer",
CLIENT_RR."Status_Reason(E-Rec)"
FROM CLIENT_CA
LEFT JOIN CLIENT_CD ON (CLIENT_CA."Candidate_ID"=CLIENT_CD."Candidate_ID"
and CLIENT_CA."Requisition_ID"=CLIENT_CD."Requisition_ID")
LEFT JOIN CLIENT_REQS ON CLIENT_REQS."Requisition_ID"=CLIENT_CA."Requisition_ID"
LEFT JOIN CLIENT_RR
ON (CLIENT_CA."Candidate_ID"=CLIENT_RR."Candidate_ID" and CLIENT_CA."Requisition_ID"=CLIENT_RR."Requisition_ID")
GROUP BY CLIENT_CA."Candidate"
,CLIENT_CA."Requisition_ID"
,CLIENT_CD."Gender"
,CLIENT_REQS."Requisition Title"
,CLIENT_REQS."Country"
,CLIENT_RR."Status_Reason(E-Rec)"
,CLIENT_CD."Application_Status";
技術上此查詢工作得很好,給我正是我需要的,沒有錯誤。問題是我需要向SELECT子句和系統添加80列,或者邏輯強制我把每一列添加到那裏,並將它放在GROUP BY子句中......我想這是因爲的「最大」功能。基本上,CLIENT_CA是我的「基礎」表,我試圖通過其他3張表上的VLOOKUP函數來實現MS Excel中的功能。我只是有點擔心,我會讓這有點不必要的複雜。請不要猶豫,告訴我,我只是簡單的愚蠢:)但只有如果你有一個建議如何做到這一點更好:)謝謝。哦....我在dashDB上運行這個。
創建包含最小巧的一個子查詢聚合適合您的需求,然後將其加入到另一個表中。 –
如果此DB支持,則可以使用WITH子句。 – massko