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. nginx - 如何根據服務器配置設置web服務參數?2. javascript - table固定尾行,有人寫過嗎?3. javascript - 使用node.js的ws模塊不斷地向客戶端發送消息,應該如何不斷地去觸發“發送”這個動作4. javascript - 如何在NW.JS中使用Node自動重啟進程?5. 前端 - Web內部網頁登陸控制,怎么通過apache控制?還有其他的控制嗎?6. css - label文字居中7. css - 網頁div區塊 像蘋果一樣可左右滑動 手機與電腦8. 為什么學習PHP9. pdo - mysql 簡單注入疑問10. 引入traits后,為什么index得是空的呢?
