用途:.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 版權聲明:本文爲博主原創文章,轉載請附上博文連接!