group by分組後得到每組中時間最大的那條記錄

用途:.net

GROUP BY 語句用於 對一個或多個列對結果集進行分組。blog

例子:排序

原表:it


如今,咱們但願根據USER_ID 字段進行分組,那麼,可以使用 GROUP BY 語句。io

咱們使用下列 SQL 語句:ast

SELECT ID,USER_ID,problems,last_updated_date from t_iov_help_feedback GROUP BY USER_ID;date


結果集相似這樣:select


能夠看到上面的,結果的確是根據 USER_ID 進行分組了,可是返回的記錄是 USER_ID 對應的每組 中最小的那條記錄。也就是ID最小的那條。查詢

如今我想分組後獲得,last_updated_date 最大的那條記錄。這怎麼實現呢?db

很簡單,直接查詢的表默認是以 ID 進行順序排序的,由於分組的時候取的是每組中的第一條。因此只須要 使查詢的表 按照 last_updated_date

倒敘排序就好了。


實現的SQL以下,這裏使用了嵌套查詢。

    SELECT ID,USER_ID,problems,last_updated_date  FROM  (select * from t_iov_help_feedback  order by USER_ID, LAST_UPDATED_DATE DESC) b
    GROUP BY b.USER_ID;


其中:select * from t_iov_help_feedback  order by USER_ID, LAST_UPDATED_DATE DESC 就至關於一個按照USER_ID升序, last_updated_date

倒敘排序的表了。

查詢結果以下:


如今取的就是每組中時間最大的那條記錄了。


當遇到兩個不一樣的表時,可使用如下SQL:

select a.title, t.name, t.price from a inner join (select * from b order by id, price ) t on t.id = a.b_id group by a.b_id; --------------------- 做者:zhang_wt 來源:CSDN 原文:https://blog.csdn.net/u012660464/article/details/78605078 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索