mysql - 關于sql語句中的with從句和group by分組
問題描述
初涉SQL,對于其中with和group by從句搭配sum,max方法的使用邏輯有一些疑問
例如,數據庫中有以下幾個table
Customer (cusid, cusname, cusphone, cuscity); Driver (did, dname, dphone, dcity); CarOwnership (did, carid); Car (carid, carbrand, carsize); Trips (cusid, carid, did, getontime, getofftime, price, distance);
要output出 carbrand。這個carbrand是最多distinct customer使用過的,即求每一種carbrand的distinct cusid數量sum,再求max這個數量的carbrand,應該如何使用sql語句實現呢?
問題解答
回答1:題主是想選出“乘客最喜愛的車型”。以下Postgresql代碼未測試:
select carbrand, count(*) as customersfrom ( select distinct carbrand, cusid from Trips inner join Car using (carid)) as brand_cusidgroup by carbrandorder by customers desclimit 10
brand_cusid是車型-乘客的關系表,已做distinct處理。
然后按carbrand分組并按行數從大到小排序,并顯示前10個車型。
注意這些車型有可能是并列第一的。這時可增加limit數量。
相關文章:
1. 網頁爬蟲 - python 爬取網站 并解析非json內容2. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處3. node.js - nodejs開發中常用的連接mysql的庫4. linux - python 抓取公眾號文章遇到驗證問題5. mysql - jdbc的問題6. python - 編碼問題求助7. 視頻文件不能播放,怎么辦?8. mysql - 如何減少使用或者不用LEFT JOIN查詢?9. python - 我在使用pip install -r requirements.txt下載時,為什么部分能下載,部分不能下載10. 為啥最大化個窗口還得找一堆理由?
