mysql group by 取想要的結果

lalall發表於2021-06-16

今天有個需求,分組後取時間最新的記錄,類似如下:
兩個表

  • emp 員工表
  • dept 部門表

emp

欄位名稱 描述
emp_no 員工編號
emp_name 員工姓名
age 年齡
dept_no 部門編號
hiredate 入職日期

dept

欄位名稱 描述
dept_no 部門編號
dept_name 部門姓名

資料如下:
dept

mysql group by 取想要的結果

emp

mysql group by 取想要的結果

查詢每個部門最早入職的員工

SELECT
    * 
FROM
    (
    SELECT
        e.emp_no,
        e.emp_name,
        d.dept_no,
        d.dept_name,
        e.hiredate 
    FROM
        emp e
        INNER JOIN dept d ON e.dept_no = d.dept_no 
    ORDER BY
        e.hiredate ASC 
        LIMIT 1000 
    ) a 
GROUP BY
    dept_no 
ORDER BY
    dept_no

結果

mysql group by 取想要的結果

其中 LIMIT 1000 這個是必須的,如果沒有,就不是想要的結果,應該是mysql版本問題

歡迎各位大佬提出更優的解決辦法,一起進步,記錄此文的目的:一是做個筆記,加深記憶,二是練練如何寫文章,三是聽從昨天一位大佬的指導,先學學Markdown語法,歡迎大佬指正

本作品採用《CC 協議》,轉載必須註明作者和本文連結
寫程式碼這回事,無非就是別人笑話笑話我,我笑話笑話別人

相關文章