人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

SQL group by去重復且按照其他字段排序的操作

發(fā)布日期:2022-02-19 10:30 | 文章來源:gibhub

需求:

合并某一個字段的相同項,并且要按照另一個時間字段排序。

例子:

一開始用

select city from table group by city order by date desc

會報錯因為date沒有包含在聚合函數(shù)或 GROUP BY 子句中

然后用將date放入group by中:

select city from table group by city,date order by date desc

得到結果

但是得到的結果還是有重復的,沒有解決

如果不按照時間排序,就會影響我之后的操作,所以百度了很久,終于找到了解決方法:

正確寫法:

select city from table group by city order by max(date) desc

發(fā)現(xiàn)很神奇的結果出來了

然后又找了一些資料,發(fā)現(xiàn)max()神奇的地方:

select city,max(date) as d1 from table group by city,d1 order by d1 desc

這里寫在前面還能看到時間排序

如果還有更好的方法大家一起交流。

補充:MYSQL中去重,DISTINCT和GROUP BY的區(qū)別

例如有如下表user:

distinct會過濾掉它后面每個字段都重復的記錄

用distinct來返回不重復的用戶名:select distinct name from user;,結果為:

用distinct來返回不重復的name和id:select distinct name,id from user;,結果為:

distinct name,id 這樣的寫法,mysql 會認為要過濾掉name和id兩個字段都重復的記錄。

如果sql這樣寫:

select id,distinct name from user

這樣mysql會報錯,因為distinct必須放在要查詢字段的開頭。

group by則可以在要查詢的多個字段中,針對其中一個字段去重 :

select id,name from user group by name;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持本站。如有錯誤或未考慮完全的地方,望不吝賜教。

國外服務器租用

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部