2016-07-07 97 views
1

我有一個表EmployeeDetails查找最大的是平均結果

DeptID | EmpName | workDate | percentage 
------------------------------------------ 
dev   Sam  06/07/16 10% 
dev   Smith  07/07/16 20% 
HR   Denis  06/07/16 5% 
HR   Danny  07/07/16 3% 
IT   David  06/07/16 15% 
IT   John  07/07/16 20% 

你能幫我找到一個SQL查詢獲得每個部門和最低的平均最高平均值(百分比)(百分比)爲每個部門。

非常感謝。

+0

是mandotary使用%符號與數據百分比列? –

+1

不要存儲'%'。始終使用適當的數據類型存儲數據。現在它非常簡單。哦,並找出你正在使用的RDBMS。 – Strawberry

+1

你不應該存儲'%'...它會產生誤導查詢 –

回答

0

這個怎麼樣。

SELECT MAX(percentage) as maximum, MIN(percentage) as minimum 
FROM EmployeeDetails 
GROUP BY DeptId 
+0

嗨謝謝,但我也需要僱員的名字。 – Creditto

0
select *,max(percentage),min(percentage) 
from department 
group by deptid 
1

試試這個:

SELECT DeptID, EmpName, MAX(percentage),MIN(percentage) 
    FROM employeedetails 
    GROUP BY deptid; 

輸出:SEE DEMO HERE

注意:您不應該存儲在數據庫 '%' 字符,它可以使誤導查詢。

更新1:根據您在回答中的評論第一你想得到明智百分比的平均值,然後你想獲得百分比明智的最大值和最小值。你可以用GROUP_CONCATUNION功能

幫助實現這一嘗試此查詢

(SELECT DeptID, 
    GROUP_CONCAT(EmpName SEPARATOR ',') AS Employees, 
    AVG(percentage) AS Max_Min_AvgValue 
    FROM employeedetails 
    GROUP BY deptid 
    ORDER BY percentage DESC LIMIT 1) 

    UNION 

(SELECT DeptID, 
    GROUP_CONCAT(EmpName SEPARATOR ','), 
    AVG(percentage) 
    FROM employeedetails 
    GROUP BY deptid 
    ORDER BY percentage ASC LIMIT 1); 

輸出:SEE DEMO HERE爲UPDATE1

+0

嗨這個查詢將執行罰款我的情況是,平均百分比列基於組deptId然後amoung百分比列哪一個是最高和最低值的平均值 – Creditto

+0

您的場景不清除給我...你的意思是你首先想要的以明智的百分比獲得平均值,那麼你想獲得明智的百分比最大值和最小值...對嗎? –

+0

是的,我需要輸出只有..你能幫我 – Creditto